1.MemTester简介
MemTester是一个用于压力测试内存子系统的工具,它特别有效于发现间歇性和非确定性的故障。以下是MemTester的一些主要特点和功能:
内存错误捕获:MemTester主要用于捕获内存错误和识别一直处于高或低电平的坏位。
多种测试项目:它提供了一系列测试项目,包括随机值测试、异或比较、减法、乘法、除法和与或运算等。
用户空间测试:MemTester是一个用户空间的测试工具,它通过malloc(3)分配指定的内存量,如果失败,则减少请求的内存量直到成功。
内存锁定:测试时,MemTester会尝试mlock(3)锁定内存,如果无法锁定,测试速度会变慢,效果也会降低。
系统限制:MemTester能够测试的内存量受到系统总内存和其他系统限制的影响,例如操作系统、库和其他系统限制会占用一部分内存。
内存容量和速度测试:MemTester可以测试内存的不同方面,包括内存容量、速度、类型和通道。
系统容错性测试:通过模拟异常情况下的内存使用,MemTester可以测试开发板在处理异常情况时的表现,并确定开发板能否在不影响数据完整性的情况下恢复正常工作。
测试结果:使用MemTester进行长时间测试(如72小时以上)可以帮助确定系统是否能够在长时间高负载占用内存的工作环境下保持可靠性和稳定性。
测试方法:MemTester的使用命令格式为 memtester [-p 内存物理起始地址] [测试内存大小B/K/M/G] [测试次数],可以灵活配置测试的物理地址、内存大小和测试次数。
2.MemTester交叉编译
2.1 MemTester源码下载
源码下载地址:memtester version 4
github地址:GitHub - jnavila/memtester: Simple memory tester mirror from http://pyropus.ca/software/memtester/. Please note that I am not the author of Memtester
当前最新版本是memtester-4.6.0.tar.gz,下载成功后将压缩包移到虚拟机环境中,准备执行交叉编译。
2.2 交叉编译
需要提前将目标平台的编译器先安装到虚拟机环境中
2.2.1.解压memteser压缩包
tar -xvf memtester-4.6.0.tar.gz
cd memtester-4.6.