Как я могу проверить оперативную память на предмет повреждения данных в системе на основе 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 (или, возможно, хост-контроллер), и memtester и mtest могут найти их. Однако, если они говорят, что все в порядке; не исключаю 100% проблем с DDR.
бесхитростный шум

Ответы:


21

Общее решение для проверки памяти состоит в том, чтобы записать определенный шаблон, например, 0xFFFFFFFFв вашу память, затем прочитать его и сравнить результат. Конечно, вы можете и должны изменить шаблон, чтобы обнаружить проблемы. Некоторые решения, например, memtest86+также генерируют случайные шаблоны и изменяют направление, которое они используют для записи в память. Более подробную информацию об используемых алгоритмах в memtest86 можно найти на их технической странице . Все решения, представленные в этом посте, в основном используют одну и ту же основную идею.

Если вы хотите запустить свой тест из Linux (вы упомянули Linux в своем посте), взгляните на memtester и набор memtest, которые оба должны работать с arm. Для начала вы должны использовать memtester, поскольку он в основном делает именно то, что вы хотите.

Тестирование вашей памяти изнутри Linux имеет ряд недостатков: вы не можете на самом деле протестировать всю свою физическую память, поскольку ядру также нужна память. Чтобы протестировать память с помощью uboot (она намного меньше ядра linux), взгляните на встроенную команду mtest . Позволяет указать диапазон адресов, шаблон и итерацию. С mtest вы сможете выполнять довольно обширное тестирование, не полагаясь на операционную систему. Вам просто нужно убедиться, что вы используете допустимые диапазоны памяти, в противном случае возможно, что вы перезапишете область ubootпамяти.

Если тестирование, предоставленное mtest, недостаточно, вы, конечно, можете просто расширить uboot и интегрировать дополнительные функции тестирования памяти в uboot.


Хорошо, у меня есть меместер. Любой другой тест, который я могу сделать?
Анкур Агарвал

1
Любые другие тестовые подходы, которые я мог бы попробовать? Я думаю о тестировании оперативной памяти от Uboot.
Анкур Агарвал

@abc хорошо, я добавил примечание о команде uboots mtest
Ульрих Дангел

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.