欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【开发工具】【memtester】内存测试工具(memtester)的使用

程序员文章站 2022-07-12 18:58:38
...

获取更多相关的嵌入式开发工具,可收藏系列博文,持续更新中:
【开发工具】嵌入式常用开发工具汇总帖


Memtester简介

Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和次数, 可以对系统现有的内存进行上面项目的测试。


Memtester安装

  • 下载memtester-4.3.0.tar.gz:

http://pyropus.ca/software/memtester/

  • 解压缩
tar -zxvf memtester-4.3.0.tar.gz

注:小技巧:Linux下一般压缩文件后缀为.tar.bz2和.tar.gz,
它们解压命令有两三个选项是一致的:
xf(v),前者再加上j选项,后者再加上z选项。
  • 进入目录
cd memtester-4.3.0/
  • 配置
修改conf-cc , conf-ld 文件中的cc为
       arm-hisivxxx-linux-gcc
   例如:
       编译hi3519av100相关的memtester,相应修改为:
       arm-himix200-linux-gcc
  • 编译、安装
make

make install

Memtester的使用

查看memtester的使用帮助:

./memtester [-p physaddrbase] <mem>[B|K|M|G] [loops]

说明:
Physaddrbase: 需要测试的物理地址;
<mem>[B|K|M|G]:测试内存的大小;
[loops]:测试次数

Ps:需要测试的内存大小,可以根据“free”上的剩余内存大小决定

Memtester简单测试

/memtester 10M 1

说明:
“10M”    参数1是指需要测试的内存大小,这里填的10M,也可以根据自己的实际内存大小去填。
“1”    参数2是进行内存测试的次数,这里填的1次。

Memtester指定物理地址测试

./memtester -p 0x88000000 128M 2

说明:
“-p 0x88000000”    指定从0x88000000地址申请内存(注意,有些地址已经被使用的,无法申请)
“128M”    参数2是指需要测试的内存大小,这里填的128M,也可以根据自己的实际内存大小去填。
“2”       参数3是进行内存测试的次数,这里填的2次。

测试结果:

[email protected]:/home/keda# memtester 10M 1
memtester version 4.3.0 (64-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 10MB (10485760 bytes)
got  10MB (10485760 bytes), trying mlock ...locked.
Loop 1/1:
  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

Done.