Добрый день.
В какой-то момент обнаружили, что часть процессорных модулей зависает через большое время прогона. Некоторые чаще, некоторые реже, некоторые вообще не зависают.
Симптомы: в какой-то момент появляются ошибки типа
Затем вылетают все приложения, работающие с памятью, и через несколько часов недоступности памяти система паникует.
Скорее всего это произошло после правок пользовательских приложений, но те из них, которые работают с драйверами (в частности spi), уже "вылизаны" и работа с spi написана стандартно.
Иногда встречается закономерность в виде зависания в течение часа после подачи небольших помех по питанию.
Сброс процессора вочдогом не помогает, как и автоперезагрузка после паники - видимо, eMMC как зависла, так и не отвисает, помогает только сброс питания.
Buildroot 2017.08-sk, linux_imx_4.1.15_2.1.0_ga-sk
Память klm4g1fete-b041
Процессор mcimx6d5eym10ac и другие того же типа, работает на 1 МГц.
Как вариант, понизить скорость обмена с eMMC, но я не знаю как.
Еще буду пробовать новую сборку buildroot.
Что еще может быть?
Аппаратная линия сброса чипа eMMC на модуле присутствует - SD3_RST
Судя по всему, им просто никто не пользуется, можно попробовать перевести его в GPIO и попробовать заставить watchdog запускать скрипт который будет генерировать импульс сброса.
Это должно выводить флешку из коматоза.
Вот что я наблюдаю осциллографом на линии сброса флешки со штатной прошивкой.
При включении питания-сбросе он устанавливается в 1 и загрузчик перед началом работы генерирует на нем импульс ~3мс.
При загрузке ядра эта линия переходит в 0 и более не меняется.
Ответ на вопрос "как флешка при этом может работать?" в документации: