Mam urządzenie osadzone. Jest oparty na ARM, z Linuksem 2.6.31 i ma 256 MB pamięci RAM.
Chciałem uzyskać kilka pomysłów / wskazówek na temat najskuteczniejszego sposobu testowania pamięci RAM urządzenia pod kątem uszkodzeń danych. Czy istnieje test / oprogramowanie, które ktoś może zaproponować?
Uwaga:
Mam teraz memtestera. Dostałem to po sugestii Ulricha Dangel'a (poniżej).
Teraz także mtest
skonfigurowałem z Uboot.
Jakieś inne testy / podejścia, których mógłbym użyć?
mtest
w zasadzie robi to samo co memtest86 +. Zasadniczo masz różne opcje, uruchom test pamięci z systemu operacyjnego, np. Linux (byłoby to,memtester
ale możesz mieć problemy z testowaniem całego regionu fizycznego). Możesz także użyć jakiegoś mini-systemu (uboot) do przetestowania pamięci (mtest
)Odpowiedzi:
Ogólnym rozwiązaniem do testowania pamięci jest zapisanie określonego wzorca podobnego
0xFFFFFFFF
do pamięci, a następnie odczytanie go i porównanie wyniku. Możesz i powinieneś oczywiście zmienić wzór, aby odkryć problemy. Niektóre rozwiązania, takie jakmemtest86+
generują losowe wzorce i zmieniają kierunek, w którym zapisują w pamięci. Aby uzyskać bardziej szczegółowe informacje na temat używanych algorytmów w memtest86, zobacz ich stronę techniczną . Wszystkie rozwiązania przedstawione w tym poście wykorzystują zasadniczo ten sam podstawowy pomysł.Jeśli chcesz uruchomić test z poziomu Linuksa (wspomniałeś o Linuksie w swoim poście), spójrz na memtester i pakiet memtest, które powinny działać z ramieniem. Na początek powinieneś użyć memtestera, ponieważ robi on dokładnie to, co chcesz.
Testowanie pamięci z poziomu Linuksa ma pewne wady, takie jak brak możliwości przetestowania całej pamięci fizycznej, ponieważ jądro również potrzebuje pamięci. Aby przetestować pamięć za pomocą Uboot (jest znacznie mniejsza niż jądro Linuksa), spójrz na zintegrowane polecenie mtest . Pozwala określić zakres adresów, wzorzec i iterację. Dzięki mtest powinieneś być w stanie przeprowadzić dość obszerne testy bez polegania na systemie operacyjnym. Musisz tylko upewnić się, że używasz prawidłowych zakresów pamięci, w przeciwnym razie może być możliwe zastąpienie
uboot
regionu pamięci.Jeśli testy dostarczone przez mtest nie są wystarczające, możesz oczywiście po prostu rozszerzyć Uboot i zintegrować dodatkowe funkcje testowania pamięci w Uboot.
źródło
bist > md.w 0x00000023 10 00000023: