笔者最近需要进行OK1046A-C内存部分的测试,linux相关的资料和方法纷杂繁多,但如鼠饮河,自得其量,还是找了如下软件进行测试,也分享给大家。

01-工具简介

Bandwitdh工具简介

Bandwidth是一款内存带宽基准测试程序,通过顺序读写与随机读写不同大小的数据块,测试系统的内存带宽性能。

它提供了一套汇编语言实现的支持库,用来完成体系结构相关的特定操作,可以测量每个内存系统的最大内存带宽,包括主内存,L1和L2缓存,framebuffer内存和寄存器的快速,连续的内存访问。

Bandwidth也包括自动制图的结果,存储到一个BMP图像文件。

Mbw工具简介

Mbw是一个内存带宽测试工具可以测试在字节拷贝,块拷贝,整体拷贝三种不同方式下的内存拷贝速度,程序源码比较简单,便于理解。

▣ 获取方式:git clone http://github.com/raas/mbw

Memtester工具简介

Memtester是一款进行内存压力测试的工具,通过对两块内存里的数据进行一系列的加减乘除亦或位与之类的算法后进行对比,用于检查是否存在内存移位之类的问题出现

▣ 获取方式:wget 点此处获取>>

memtester的使用很简单./memtester [runs]其中:内存大小,单位M,[runs]:运行次数。

02-编译方法

bandwidth来源

▣ 下载并解压bandwidth

源码路径:https://zsmith.co/archives/bandwidth-1.5.1.tar.gz

解压并进入源码目录:

tar xvf bandwidth-1.5.1.tar.gz

cd bandwidth-1.5.1/

▣ 修改makefile文件并进行编译

Vim Makefile

修改如下:

CC=arm-xxx-gcc -Wall

LD=arm-xxx-gcc

ARM_AS=arm-xxx-as

ARM_CC=arm-xxx-gcc

退出并make bandwidth-rpi32即可得到二进制程序(arm-xxx-gcc为交叉编译工具)。

Mbw

▣ 下载并进入源码目录编译

git clone

https://github.com/raas/mbw.git

cd mbw

arm-xxx-gcc mbw.c –o mbw

▣ 在源码目录下得到mbw应用程序。

Memteser

▣ 下载并解压源码

wget 点此处获取>>

tar xvf memtester-4.3.0.tar.gz

cd memtester-4.3.0/

▣ 修改配置文件:

分别把conf-ld和conf-cc文件中的"cc"(一般在文件首行)替换为“arm-xxx-gcc”

在conf-ld的第一行后面加上 -static

修改文件Makefile,更改 INSTALLPATH = `pwd`/INSTALL

执行make即可编译成功,在源码目录下得到应用程序。

03-使用方法和示例

bandwidth工具的使用

我们将bandwidth移植到开发板上运行(因OK1046A-C gcc版本过高存在兼容性问题未能编译成功,此处以其它板卡数据结果做工具介绍,数据不做 OK1046A-C 的参考)./bandwidth –fastest 得出如下图表:

这部分图表我们可以得到一些cpu与内存之间互相访问的数据传输和命令交互的性能,以及framebuffer的读写速度。

上表可见,内存的读写速度和顺序还是随机还是有很大关系的,在写数据时尤为明显。

其次我们可以观察到,写的数据块的大小会影响读写速度,在两个关键点会产生突变(32kb/256kb),这是由于各级cache的不同,进行内存读写时,较小的数据块会存放在cache中,较大的数据块则会经过cache存放在主存中。

突变的原因就是达到了cache的上限,而转向了下层存储。

mbw工具的使用

将mbw工具移植到开发板上,并执行./mbw -q -n 3 320

-q 隐藏日志,3 测试次数,64 内存大小(单位是M)结果如下:

我们只需要关注AVG平均值即可。

三种不同的测试方法分别对应的是memcpy(内存拷贝),dump(字符串拷贝),mcblock(内存块拷贝)。

我们可以看到,OK1046A-C的ddr4d的内存的运行速度是非常快的,再内存拷贝的速度达到了2GiB/s,甚至于接近我们的服务器的读写速度。

memtester的使用

▣ 先运行free –h 得出剩余内存:

▣ 可以看到,该开发板剩余1.2G可用内存,所以我使用1G内存大小运行内存检错程序memtester。

▣ ./me mtester 1G 3 截图如下:

如此便是内存运行正常,笔者重复了三天,利用脚本反复调用memtester程序,最终均未发现内存报错和移位的问题,可见内存稳定性基本达标。

结语

综上我们可以看到,OK1046A-C板卡的ddr4内存读写速度非常快,内存使用也非常稳定,可惜因为版本原因未能测得CPU内存交互的实际速度以及CPU一级二级缓存的使用速度,在后期经过修改后再进行追加。

下一期笔者将针对于OK1046A-C的万兆网测试和网络转换方面,请各位保持关注。

小甲鱼c++源码_飞凌课堂丨OK1046A-C内存交互测试,小白也能看懂相关推荐

  1. dll 源码_【技术分享】 | 一个JAVA内存马的源码分析

    前言 偶然接触到了这样一个JAVA内存马,其作者也是冰蝎的作者,项目地址: https://github.com/rebeyond/memShell 正好最近在接触JAVA,借此机会学习下大佬的代码, ...

  2. 飞凌课堂丨液晶模块的DE和HV模式

    对于裸屏来说,需要一些时序型号与RGB信号配合显示,时序告知显示屏,这些颜色显示在屏的什么物理位置.这些时序叫做TCON.根据显示屏自带的驱动IC,所需要的TCON信号不同. DE(DataEnabl ...

  3. 电平通讯速度_飞凌干货丨几种常见的电平转换电路分析及应用

    在电路设计过程中,输入输出信号电平不匹配问题很常见,这时就需要设计人员对信号进行电平转换.常见的电平转换电路有以下几种: 1.由二极管构成的单向电平转换电路 图1中RX为3.3V TTL电平与485驱 ...

  4. 超准中医体质测试 源码_可能是史上“最准”的抑郁症测试,试试你有没有患上抑郁症...

    越来越多的公众人物被爆因抑郁症自杀,很多人对这种疾病产生了恐惧感.并且从抑郁出现到如今,随着各方面压力不断增加,患抑郁症的人越来越多,所以我们要时刻做好预防,下面的测试题你敢试试吗? 最准的抑郁症心理 ...

  5. java你画我猜源码_为什么看到Mybatis源码就感到烦躁?

    背景 最近,听到很多吐槽:看到源码,心中就感到十分纠结.特别烦恼. 为什么纠结? 因为面试的时候,面试官很喜欢问:你看过什么框架源码?JDK源码也行. 这时候,如果回答没有看过,虽然没让你立马回去等通 ...

  6. 合成分红游戏源码_旅行世界遛狗养狗恐龙源码,分红龙源码、红包龙、合成龙...

    我们团队已经对系统进行深度开发和优化,修复漏洞和负载能力. 超级经典系统,可以二次开发 本产品有演示,联系店主. 伴随着智能手机的普及,越来越多的互联网企业.电商平台将APP作为销售的主战场之一.越多 ...

  7. 飞凌嵌入式丨2020年技术干货合集大放送!

    亲爱的飞凌用户们 你们好哇 魔幻的2020即将过去 今年有些特殊,有些不容易 回看射雕处,千里暮云平 想必大家都有成长有收获 感谢你们一路以来的支持 2021即将到来 回顾2020 你是不是又博学了呢 ...

  8. 宝宝起名神器小程序源码_支持多种流量主模式

    2022年马上到了,还不知道怎么给虎宝宝取名字么? 那么这款小程序源码就可以帮到你了,这款小程序支持输入姓氏自动起名. 不满意还可以点击换一换来找到满意的,支持起两个字或者三个字的名字. 另外也给该款 ...

  9. 新动态视频壁纸微信小程序源码_支持多种分类短视频-也有静态壁纸

    这是一款主打动态视频壁纸的一款微信小程序源码,当然啦,里面也是有静态壁纸的. 其实这款小程序也可以说是短视频小程序都可以,该款小程序全采集,另外支持多种流量主!! 下载链接: 新动态视频壁纸微信小程序 ...

最新文章

  1. [解决方法] spring-data-mongo 配置报错org.springframework.beans.factory.BeanCreationException
  2. React Hooks-概览
  3. 能源局将提高光伏“领跑者”项目技术指标
  4. docker 容器启动顺序_Docker容器启动时初始化Mysql数据库
  5. mysql 事物隔离级别解读
  6. 云安全仍然是程序开发者头痛的问题
  7. 网站时间显示——基于Date
  8. 无法访问_关于小米电视无法访问电脑创建共享文件夹问题
  9. python成绩管理系统设计 gui csdn_用golang简单编写学生信息管理系统
  10. Win32汇编——文件操作
  11. 【Linux】yum卸载恢复
  12. 【终极之战】基于Vue3+Vant3造一个网页版的类掘金app项目 - 个人主页
  13. Unable to open underlying table
  14. i3 10110u和r5 4500u 哪个好
  15. 菲菲更名宝贝(批量更名软件) v8.0 绿色版
  16. 利用Adobe Acrobat 7.0 Professional 自带的导出图片的功能(转)
  17. 为C1Menu for Silverlight添加动画显示效果
  18. React之mobx、mobx-react 入门
  19. mysql主从配置详细教程
  20. Flutter 自定义Dialog

热门文章

  1. 利用graphviz模块展示斐波那契数列的递归函数调用图(Python)
  2. HTTP 499 状态码 nginx下 499错误
  3. 《调色师手册:电影和视频调色专业技法(第2版)》——调色师该何时介入?...
  4. 构建稳固的、可升缩的CSS框架的八大原则
  5. 【原】iOS学习之UITabBar的隐藏
  6. QTP 中 通过 Test Setting 设置 function libraries 与 test 的关联
  7. WritableComparable排序案例(全排序)
  8. 用逻辑回归模型解决互联网金融信用风险问题
  9. 委托、多播委托(MulticastDelegate)
  10. JavaWeb核心之Servlet