ARM64位-DDR测试

1、memtester的下载地址:

http://pyropus.ca/software/memtester/old-versions/memtester-4.3.0.tar.gz

测试的是目标板的内存(DDR),所以要交叉编译,目标板为64位ARM架构,所以要改变 Makefile,解压之后,目录下有这样两个文件:

1、conf-cc
2、conf-ld

打开conf-cc,第一行:

cc -O2 -DPOSIX -D_POSIX_C_SOURCE=200809L -D_FILE_OFFSET_BITS=64 -DTEST_NARROW_WRITES -c

修改为:

aarch64-hisiv610-linux-gcc -static -O2 -DPOSIX -D_POSIX_C_SOURCE=200809L -D_FILE_OFFSET_BITS=64 -DTEST_NARROW_WRITES -c

打开conf-ld第一行:

cc -s

改为:

aarch64-hisiv610-linux-gcc -static -s

即将 1、conf-cc 2、conf-ld这两个文件的cc改成板子对于的编译工具链

然后,直接make,就会生成memtester,把这个使用adb push到目标板。
2、使用方法:
查看文本打印

Usage: memtester [-p physaddrbase] [B|K|M|G] [loops]

如:
./memtester 4G 3 #测试4G的内存3次。
因为系统运行和本工具运行都需要内存,所以不能把所有的内存都测试到。可以先用free 命令查看系统剩余多少内存空间再测试。高级点的可以用-p参数从内存地址开始测试。查看文本打印:

memtester version 4.2.0 (64-bit)  
Copyright (C) 2010 Charles Cazabon.  
Licensed under the GNU General Public License version 2 (only).  
  
pagesize is 4096  
pagesizemask is 0xfffffffffffff000  
want 28672MB (30064771072 bytes)  
got  28672MB (30064771072 bytes), trying mlock …locked.  
Loop 1/3:  
  Stuck Address       : testing   0memtester version 4.2.0 (64-bit)  
Copyright (C) 2010 Charles Cazabon.  
Licensed under the GNU General Public License version 2 (only).  
   
  
pagesize is 4096  
pagesizemask is 0xfffffffffffff000  
want 28672MB (30064771072 bytes)  
got  28672MB (30064771072 bytes), trying mlock …locked.  
Loop 1/3:  
  Stuck Address       : ok          
  Random Value        : ok  
  Compare XOR         : ok  
  Compare SUB         : ok  
  Compare MUL         : ok  
  Compare DIV         : ok  
  Compare OR          : ok  
  Compare AND         : ok  
  Sequential Increment: ok  
  Solid Bits          : ok          
  Block Sequential    : ok          
  Checkerboard        : ok          
  Bit Spread          : ok          
  Bit Flip            : ok          
  Walking Ones        : ok          
  Walking Zeroes      : ok          
  8-bit Writes        : ok  
  16-bit Writes       : ok  

结果全部为OK则内存正常。

对于某些不需要的测试项目可以通过修改memtester.c文件,注释掉某些内容再重新make一下便可。如下:

struct test tests[] = {  
    { “Random Value”, test_random_value },  
    { “Compare XOR”, test_xor_comparison },  
    { “Compare SUB”, test_sub_comparison },  
    { “Compare MUL”, test_mul_comparison },  
    { “Compare DIV”,test_div_comparison },  
    { “Compare OR”, test_or_comparison },  
    { “Compare AND”, test_and_comparison },  
    { NULL, NULL }  
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那肯定是很多年以后!

你的鼓励就我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值