LINUX.ORG.RU

ucLinux проблема №2

 


0

1

Собственно проблема в том, что падает ядро переодически.

Система: stm32f429 (ARM v7m) 24мБ ОЗУ ядро 5.6.12 собрано без MMU rootfs - busybox 1.31

Падает стабильно в течении 1-12 часов работы, при этом запущен httpd из busybox. падает с Unhandled exception и соответствующим выводом (приложить пока не могу, вывод на дисплей идет, переключил на вывод в компорт, как свалиться - могу добавить). Сказать что причина падения только в httpd нельзя, пару раз падал без него, но там тайминги памяти чуть другие были.

Поэтому когда часами ждешь результата после изменения чего-либо напрягает сильно.

Кстати, еще одна особенность. rootfs собранная из busybox работает не совсем как надо. Суть в том, что в нете качал rootfs если ее ставлю, при команде reboot проц норм перезагружается, если то что собранное сейчас - падает сразу, с выводом backtrace.

Думал на ошибки памяти,memtester показывает что все норм. Единственное, что без запущенного httpd тестирует 2Мб памяти, при запущенном не более 1Мб. (хотя top показывает в первом случае 15Мб free, во втором 13Мб).

И дальше поехали вопросы:

  • Unhandled exception это реально прерывание, на которое нет обработчика?
  • Вообще, сколько памяти ядру надо минимум, если free показывает больше половины доступной памяти это норм?
  • Больше к железу, например, если FreeRTOS собирать на этот камень, то там обязательно всем аппаратным прерываниям нужно задавать приоритет который ниже чем прерывания самой ОС. Для ядра Linux тоже такое необходимо?
  • Каким боком отловить можно причину падения (gdb как то криво работает, через раз останавливается на breakpoint’e)?

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

Спасибо за ответы!

Собственно, выдернул езернет из платы, и всю ночь гонялся memtest, ничего не упало. Т.е. понятно, что адаптер ethernet прерывание вызывает.

Ну а с обработчиком прерывания разобраться - дело техники.

rexton ()