LINUX.ORG.RU
ФорумAdmin

тест ram для процессоров arm

 ,


0

1

Существует ли что-то, что может тестировать весь объем памяти ram, ведь можно придумать что-то, что будет перемещать себя в памяти и тестировать ранее занятый участок памяти? Знаю, что в u-boot есть мемтестер, но в руководстве прямо написано, что нельзя тестировать те участки, которые заняты u-boot_ом

★★★

напиши сам

расположение физической памяти в адресном пространстве в общем и целом может быть произвольным, так что стандартное решение не всегда прокатит

Harald ★★★★★
()
Ответ на: комментарий от Harald

я недостаточно умен для этого. еще порты ввода вывода на адреса памяти замаплены, надо знать, что можно тестировать, а что нельзя

IvanR ★★★
() автор топика

Для SoC i.MX6 я использовал как-то давно специальную программу, которая загружалась при помощи u-boot в OCRAM чипа, и проверяла оттуда вообще весь объём.

Для твоего проца такое тоже может быть. Надо потрясти производителя на это счёт.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от sparkie

Запускается из загрузчика, а загрузчики разные, в x86, как правило, граб, в арм юбут

IvanR ★★★
() автор топика
Ответ на: комментарий от sparkie

Вот только разные тесты памяти даже на одном и том же x86 показывают разную эффективность поиска ошибок. Так что разницы дофига.

anonymous
()
Ответ на: комментарий от anonymous

Для меня главное чтобы он всю память смог проверить, на плате ядро выдает ошибки адресации, не понятно, это совтверная ошибка или хардварная, я собрал новое ядро, а ошибки остались, можно сделать предположение, что хардварная, но хотелось бы быть уверенным

IvanR ★★★
() автор топика
Ответ на: комментарий от aol

Читал, спасибо, заинтересовала часть про POST

IvanR ★★★
() автор топика
Ответ на: комментарий от anonymous

вам код объяснить? или последствия его вызова?

декларирует функцию :( ) с телом { :|:& }, в теле 2 раза вызывает рекурсивно только что задекларированную функцию, видимо съедает всю память, или заканчиваются номера pid, если вызов функции создает новый процесс, не уверен, что так.

IvanR ★★★
() автор топика
Ответ на: комментарий от dsdqmhsx

не похоже, что это подойдет для любой платформы:

When finished, Reboot your On a Mac, you need to hold down the ALT / Option key on the Mac keyboard while powering on the machine to boot from USB.

похоже, что это для маков, моя система не грузится с флешки

IvanR ★★★
() автор топика
Ответ на: комментарий от burato

вот, что про него пишут

   - It is terribly slow.  Running "mtest" on the whole system RAM
     takes a _long_ time before there is any significance in the fact
     that no errors have been found so far.

   - It is difficult to configure, and to use.  And any errors here
     will reliably crash or hang your system.  "mtest" is dumb and has
     no knowledge about memory ranges that may be in use for other
     purposes, like exception code, U-Boot code and data, stack,
     malloc arena, video buffer, log buffer, etc.  If you let it, it
     will happily "test" all such areas, which of course will cause
     some problems.

   - It is not easy to configure and use, and a large number of
     systems are seriously misconfigured.  The original idea was to
     test basically the whole system RAM, with only exempting the
     areas used by U-Boot itself - on most systems these are the areas
     used for the exception vectors (usually at the very lower end of
     system memory) and for U-Boot (code, data, etc. - see above;
     these are usually at the very upper end of system memory).  But
     experience has shown that a very large number of ports use
     pretty much bogus settings of CONFIG_SYS_MEMTEST_START and
     CONFIG_SYS_MEMTEST_END; this results in useless tests (because
     the ranges is too small and/or badly located) or in critical
     failures (system crashes).

а тот, который в post не работает под моей платой.

IvanR ★★★
() автор топика

Существует ли что-то, что может тестировать весь объем памяти ram?

Программа проверки записи и считывания из внешнего ОЗУ вполне помещается во внутреннее ОЗУ процессора вместе с простым загрузчиком, который настроит внутри процессора контроллер внешней памяти. Грузишься из энергонезависимой памяти во внутреннее ОЗУ процессора, а затем пишешь и читаешь из внешней памяти. Внутрисхемный джейтаг-эмулятор только понадобится, а сам загрузчик и проверяющая программа будут несложными. Успехов!

Enthusiast ★★★
()
8 января 2022 г.
Ответ на: комментарий от sparkie

на правах некропоста:

Some embedded system designs may also include an intermediary boot sequence step in form of additional code that gets loaded into system RAM by the integrated boot ROM. Additional code loaded that way usually serves as a way for overcoming platform limitations, such as small amounts of RAM, so a dedicated primary boot loader, such as Das U-Boot, can be loaded as the next step in system's boot sequence. The additional code and boot sequence step are usually referred to as secondary program loader (SPL).

Крч, многие ARM'ы тупо всасывают первые N килобайт флешки, где лежит предзагрузчик, во внутренний буфер и запускают оттуда, эт нечто вроде загрузочного сектора у MBR. Собственно, предзагрузчик инициализирует контроллер памяти и прочий минимальный набор сопроцессоров, дёргая захардкоженные регистры, после чего обычно загружает в уже нормальную оперативу кусок-побольше (обычно u-boot) и самоубивается. Или как-то так.

Есть ли такое у х86 и есть ли такое у всех армов - хз.

izzholtik ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.