У меня есть встроенное устройство. Он основан на ARM, с Linux 2.6.31 и имеет 256 МБ ОЗУ.
Я хотел бы получить некоторые идеи / советы о том, как наиболее эффективно протестировать оперативную память устройства на предмет повреждения данных. Есть ли тест / программное обеспечение, которое кто-то может предложить?
Заметка:
У меня есть меместер сейчас. Я получил его после предложения от Ульриха Дангела (ниже).
Я также mtest
настроил с Uboot сейчас.
Любые другие тесты / подходы, которые я мог бы использовать?
mtest
в основном делает то же самое, что memtest86 +. В основном у вас есть разные варианты, запустите тест памяти из вашей операционной системы, такой как Linux (это может быть,memtester
но у вас могут возникнуть проблемы с тестированием всей физической области). Вы также можете использовать некоторую мини-систему (uboot) для проверки вашей памяти (mtest
)Ответы:
Общее решение для проверки памяти состоит в том, чтобы записать определенный шаблон, например,
0xFFFFFFFF
в вашу память, затем прочитать его и сравнить результат. Конечно, вы можете и должны изменить шаблон, чтобы обнаружить проблемы. Некоторые решения, например,memtest86+
также генерируют случайные шаблоны и изменяют направление, которое они используют для записи в память. Более подробную информацию об используемых алгоритмах в memtest86 можно найти на их технической странице . Все решения, представленные в этом посте, в основном используют одну и ту же основную идею.Если вы хотите запустить свой тест из Linux (вы упомянули Linux в своем посте), взгляните на memtester и набор memtest, которые оба должны работать с arm. Для начала вы должны использовать memtester, поскольку он в основном делает именно то, что вы хотите.
Тестирование вашей памяти изнутри Linux имеет ряд недостатков: вы не можете на самом деле протестировать всю свою физическую память, поскольку ядру также нужна память. Чтобы протестировать память с помощью uboot (она намного меньше ядра linux), взгляните на встроенную команду mtest . Позволяет указать диапазон адресов, шаблон и итерацию. С mtest вы сможете выполнять довольно обширное тестирование, не полагаясь на операционную систему. Вам просто нужно убедиться, что вы используете допустимые диапазоны памяти, в противном случае возможно, что вы перезапишете область
uboot
памяти.Если тестирование, предоставленное mtest, недостаточно, вы, конечно, можете просто расширить uboot и интегрировать дополнительные функции тестирования памяти в uboot.
источник
bist > md.w 0x00000023 10 00000023: