Як я можу перевірити оперативну пам’ять на наявність корупційних даних у системі на основі ARM?


20

У мене вбудований пристрій. Він базується на ARM, має Linux 2.6.31 і має 256 Мб оперативної пам’яті.

Я хотів отримати кілька ідей / порад про те, який найефективніший спосіб перевірити оперативну пам’ять пристрою на наявність пошкоджень даних. Чи є тест / програмне забезпечення, яке хтось може запропонувати?

Примітка:

У мене зараз пам’ятка. Я отримав його після пропозиції Ульріха Дангеля (нижче).

Я також mtestвстановив з uboot зараз.

Будь-які інші тести / підходи, які я міг би використовувати?


2
Зауважте, що це процесор ARM, а не x86; на жаль, Memtest86 + у цьому випадку не працюватиме.
Ренан

Я отримав пам’ятку. Будь-які інші тести / підходи, які я міг би використовувати?
Анкур Агарвал

1
@abc що ще хочеш? Я думаю, у вас є деякі інші проблеми, якщо цей метод не дасть бажаного результату. mtestв основному робить те саме, що і memtest86 +. В основному у вас є різні варіанти, запустіть тест пам'яті з вашої операційної системи, наприклад, Linux (це могло б бути, memtesterале у вас можуть виникнути проблеми з тестуванням всього фізичного регіону). Ви також можете скористатись міні-системою (uboot), щоб перевірити свою пам'ять ( mtest)
Ульріх Дангель

Це процесор від Marvell? У мене те саме запитання щодо мережевого процесора marvell, який має таку саму конфігурацію (ARM / 256MB RAM / Linux 2.6.31), як і ваш.
Тім Ву

Ось подібне запитання щодо переповнення стека . Усі тести тут можуть виявити деякі проблеми. Вони не знайдуть усіх проблем і насправді це зробити дуже важко. Це підтверджують лише дуже хороші інструменти моделювання дощок та моделювання; не програмне забезпечення. Якщо це зробити, то єдиною проблемою буде мікросхема DDR (або можливо хост-контролер), і метестер і mtest можуть їх знайти. Однак якщо вони кажуть, все добре; не виключайте на 100% проблему DDR.
невгамовний шум

Відповіді:


21

Загальне рішення для тестування пам’яті - написати певний зразок, схожий 0xFFFFFFFFна вашу пам’ять, і прочитати його згодом і порівняти результат. Звичайно, ви можете і слід змінювати схему, щоб виявити проблеми. Деякі рішення, як-от memtest86+також генерують випадкові візерунки та змінюють напрямок, який вони використовують для запису в пам'ять. Для отримання більш детальної інформації про використовувані алгоритми в memtest86 ознайомтеся з їх технічною сторінкою . Усі рішення, пропоновані в цій публікації, використовують в основному одну і ту ж основну ідею.

Якщо ви хочете , щоб запустити тест зсередини Linux (ви згадали Linux у вашій пошті) подивитися на memtester і MEMTEST пакет , який і повинен працювати з важелем. Для початку вам слід використовувати метестер, оскільки він в основному робить саме те, що ви хочете.

Тестування пам’яті з Linux має деякі недоліки, наприклад, ви не можете реально перевірити всю фізичну пам'ять, оскільки ядро ​​також потребує пам'яті. Для перевірки пам'яті за допомогою uboot (вона значно менша, ніж ядро ​​Linux), подивіться на інтегровану команду mtest . Це дозволяє вказати діапазон адрес, візерунок та ітерацію. З mtest ви зможете провести досить обширні тестування, не покладаючись на операційну систему. Вам просто потрібно переконатися, що ви використовуєте дійсні діапазони пам'яті, інакше можливо перезаписати ubootобласть пам'яті.

Якщо тестування, передбаченого mtest , недостатньо, ви, звичайно, просто розгорніть uboot та інтегруєте додаткові функції тестування пам'яті в uboot.


Гаразд, я отримав пам’ятку. Будь-який інший тест я можу зробити?
Анкур Агарвал

1
Будь-які інші тестові підходи я міг би спробувати? Я думаю про тестування ОЗУ від uboot.
Анкур Агарвал

@abc Ок, я додав примітку про команду mtest uboots
Ульріх Дангель,

1
Я почав використовувати команди uboot, і тепер бачу, що команда uboot відображення пам'яті застрягає посерединіbist > md.w 0x00000023 10 00000023:
Ankur Agarwal

u-boot мають підтримку двох різних mtest. Компілюйте з CONFIG_SYS_ALT_MEMTEST для більш широкого тестування пам'яті, ніж за замовчуванням.
m__
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.