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)?

не знаю как на этих армах, но на пк последние ядра запускаются только на 48+ мегабайтах.

anonymous
()

1. Да

2. При определенной сноровке и мегабайта достаточно

3. Приоритеты прирываний не используются в linux (максимум эмуляция NMI через приоритеты)

4. Openocd?

Ждём логов.

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

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

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

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

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