Memtester

Memtester

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

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

下载源码memtester-4.3.0.tar.gz 解压到android源码的/externel/目录下

创建Android.mk文件用来编译memtester

c00390379@u138-103:~/aosp/external/memtester-4.3.0$ vi Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := memtester.c tests.c
LOCAL_MODULE := memtester
LOCAL_C_INCLUDES := $(LOCAL_PATH)
#LOCAL_MODULE_PATH :=  output path of module!
include $(BUILD_EXECUTABLE)

 

c00390379@u138-103:~/aosp$ make -j86 memtester

生成二进制文件 out/target/product/generic_arm64/system/bin/memtester

将该文件push到/system/bin/目录中

参数介绍:

kirin970:/ # memtester
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
need memory argument, in MB

Usage: memtester [-p physaddrbase [-d device]] <mem>[B|K|M|G] [loops]

-P 指定测试起始地址(可以不指定)
<mem>[B|K|M|G] 指定测试内存大小,默认为M
[loops] 指定测试次数 默认是无限

 

kirin970:/ # memtester 2000 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 2000MB (2097152000 bytes)
got 2000MB (2097152000 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 : testing 84

posted @ 2017-09-20 16:43  牧 天  阅读(1062)  评论(0)    收藏  举报