Linux下のメモリテストツールmemtester

2579 ワード

ダウンロード先:http://pyropus.ca/software/memtester/  ソースのインストールパッケージ、debパッケージ、rpmパッケージなどがあります.
ソースコードはすでにコンパイルされています.リンクの下でメークだけでいいです.
 私がテストしたいのはターゲットボードのメモリです.だから、クロスコンパイルします.ターゲットボードはmipsアーキテクチャです.だから、変更します. Makefile
     解凍後、ディレクトリの下にこの2つのファイルがあります.conf-cc、conf-ld.
      conf-cc,   :cc -O2 -DPOSIX -D_POSIX_C_SOURCE=200809L -D_FILE_OFFSET_BITS=64 -DTEST_NARROW_WRITES -c
     :mipsel-linux-gcc -O2 -DPOSIX -D_POSIX_C_SOURCE=200809L -D_FILE_OFFSET_BITS=64 -DTEST_NARROW_WRITES -c
   同じ理屈で、conf-ldを変える.
      そして、直接メークをすると、memtesterが生成されます.これをターゲットボードに降りればいいです. 
 
使用方法:
Usage: memtester [-p physaddrbase] [B|K|M|G] [loops]
 :
memtester 28G 3 #  28G   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.clファイルを修正することによって、いくつかの内容を注釈してからやり直せばいいです.以下のとおりです
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 }
};