Die allgemeine Lösung zum Testen des Speichers besteht darin, ein bestimmtes Muster wie 0xFFFFFFFF
zu schreiben auswendig lernen und anschließend lesen und das Ergebnis vergleichen. Sie können und sollten natürlich das Muster ändern, um Probleme zu entdecken. Einige Lösungen wie memtest86+
erzeugen auch zufällige Muster und ändern die Richtung, in der sie in den Speicher schreiben. Weitere Informationen zu den verwendeten Algorithmen in memtest86 finden Sie auf deren Tech-Seite. Alle in diesem Beitrag bereitgestellten Lösungen verwenden im Grunde dieselbe 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. Zu Beginn sollten Sie memtester verwenden, da es im Grunde genau das tut, was Sie wollen.
Das Testen Ihres Speichers innerhalb von Linux hat einige Nachteile, da Sie nicht wirklich Ihren gesamten physischen Speicher testen können, da der Kernel auch Speicher benötigt. Um den Speicher mit uboot zu testen (es ist viel kleiner als der Linux-Kernel), werfen Sie einen Blick auf den integrierten mtest-Befehl. Sie können den Adressbereich, das Muster und die Iteration angeben. Mit mtest sollten Sie in der Lage sein, ziemlich umfangreiche Tests durchzuführen, ohne sich auf ein Betriebssystem verlassen zu müssen. Sie müssen nur sicherstellen, dass Sie gültige Speicherbereiche verwenden, da es sonst möglich ist, dass Sie die uboot
überschreiben Speicherbereich.
Wenn die von mtest bereitgestellten Tests nicht ausreichen, können Sie natürlich uboot einfach erweitern und zusätzliche Speichertestfunktionen in uboot integrieren.