Я использую ARM Cortex-R4 для своей системы. Он имеет блок защиты памяти вместо блока управления памятью. Эффективно это означает, что имеется специальное оборудование для защиты памяти, но есть взаимно однозначное сопоставление между физическими и виртуальными адресами. Я немного запутался в отношении того, на каком Linux я должен пойти - стандартное ядро Linux с отключенным MMU или uCLinux.Запуск без использования MMU Linux на ARM Cortex-R4
На оценочной плате ARM я запустил стандартное ядро, скомпилированное с отключенным MMU. Я использовал файловую систему cramfs, которая доступна на официальном сайте ARM. После того, как ядро загрузится, я попал в оболочку, но я не мог много экспериментировать, поскольку обнаружил, что большую часть времени оболочка перестает отвечать (особенно когда я нажимаю «вкладку» для автоматического завершения).
Так что я все еще не уверен, должно ли ядро без MMU работать нормально, если я использую правильную файловую систему. Кроме того, какой дистрибутив (buildroot?) Следует использовать для Linux без VM?
Любая идея или предложение приветствуются.
Похоже, вам нужно выяснить, что именно происходит, и почему, а не размышлять, что это ядро или файловая система. Если вы можете получить второй путь в доску - скажите как uart, так и сеть, это поможет, так как вы можете увидеть, остался ли он жив, даже когда другой зависает. Вы могли бы также сделать что-то вроде того, как демон демонстраций пользователей записывать на терминал (или даже модуль ядра printk) периодически, чтобы сказать «все еще здесь» - по крайней мере, это поможет вам определить, висит ли ваша оболочка, пока остальная часть системы работает, или если ядро висит. Или в ответ на кнопку gpio ... –
Предложение printk(), вероятно, лучше, чем процесс пользовательского пространства. Запуск в режиме реального = виртуальный режим в лучшем случае сложный. Мой голос для uCLinux. –