Ich habe ein eingebettetes Gerät. Es basiert auf ARM mit Linux 2.6.31 und hat 256 MB RAM.
Ich wollte einige Ideen / Tipps dazu erhalten, wie der RAM des Geräts auf Datenverfälschungen am effektivsten getestet werden kann. Gibt es einen Test / eine Software, die jemand vorschlagen kann?
Hinweis:
Ich habe jetzt Memtester. Ich habe es auf Vorschlag von Ulrich Dangel (unten) bekommen.
Ich habe mtest
mich jetzt auch aus dem Uboot eingerichtet.
Gibt es noch andere Tests / Ansätze, die ich verwenden könnte?
mtest
funktioniert im Grunde genauso wie memtest86 +. Grundsätzlich haben Sie verschiedene Optionen. Führen Sie den Speichertest unter Ihrem Betriebssystem wie unter Linux aus (dies ist zwar der Fallmemtester
, Sie haben jedoch möglicherweise Probleme beim Testen der gesamten physischen Region). Sie können auch ein Mini-System (uboot) verwenden, um Ihr Gedächtnis zu testen (mtest
)Antworten:
Die allgemeine Lösung, um das Gedächtnis zu testen, besteht darin, ein bestimmtes Muster
0xFFFFFFFF
in Ihr Gedächtnis zu schreiben und es anschließend zu lesen und das Ergebnis zu vergleichen. Sie können und sollten das Muster natürlich ändern, um Probleme zu entdecken. Einige Lösungenmemtest86+
erzeugen auch zufällige Muster und ändern die Richtung, in der sie in den Speicher schreiben. Detaillierte Informationen zu den in memtest86 verwendeten Algorithmen finden Sie auf der Tech-Seite . Alle in diesem Beitrag bereitgestellten Lösungen verwenden im Grunde die gleiche zugrunde liegende Idee.Wenn Sie Ihren Test unter Linux ausführen möchten (Sie haben Linux in Ihrem Beitrag erwähnt), werfen Sie einen Blick auf memtester und die memtest-Suite, die beide mit arm funktionieren sollten. Um loszulegen, sollten Sie memtester verwenden, da es im Grunde genau das tut, was Sie wollen.
Das Testen Ihres Arbeitsspeichers unter Linux hat einige Nachteile: Sie können nicht den gesamten physischen Arbeitsspeicher testen, da der Kernel auch Arbeitsspeicher benötigt. Um den Speicher mit uboot zu testen (er ist viel kleiner als der Linux-Kernel), schauen Sie sich den integrierten Befehl mtest an . Hier können Sie den Adressbereich, das Muster und die Iteration festlegen. Mit mtest sollten Sie in der Lage sein, ziemlich umfangreiche Tests durchzuführen , ohne auf ein Betriebssystem angewiesen zu sein. Sie müssen nur sicherstellen, dass Sie gültige Speicherbereiche verwenden, da Sie sonst möglicherweise den
uboot
Speicherbereich überschreiben .Wenn die von mtest bereitgestellten Tests nicht ausreichen, können Sie uboot natürlich einfach erweitern und zusätzliche Speichertestfunktionen in uboot integrieren.
quelle
bist > md.w 0x00000023 10 00000023: