2012-05-18 4 views
9

Я использую ARM Cortex-R4 для своей системы. Он имеет блок защиты памяти вместо блока управления памятью. Эффективно это означает, что имеется специальное оборудование для защиты памяти, но есть взаимно однозначное сопоставление между физическими и виртуальными адресами. Я немного запутался в отношении того, на каком Linux я должен пойти - стандартное ядро ​​Linux с отключенным MMU или uCLinux.Запуск без использования MMU Linux на ARM Cortex-R4

На оценочной плате ARM я запустил стандартное ядро, скомпилированное с отключенным MMU. Я использовал файловую систему cramfs, которая доступна на официальном сайте ARM. После того, как ядро ​​загрузится, я попал в оболочку, но я не мог много экспериментировать, поскольку обнаружил, что большую часть времени оболочка перестает отвечать (особенно когда я нажимаю «вкладку» для автоматического завершения).

Так что я все еще не уверен, должно ли ядро ​​без MMU работать нормально, если я использую правильную файловую систему. Кроме того, какой дистрибутив (buildroot?) Следует использовать для Linux без VM?

Любая идея или предложение приветствуются.

+0

Похоже, вам нужно выяснить, что именно происходит, и почему, а не размышлять, что это ядро ​​или файловая система. Если вы можете получить второй путь в доску - скажите как uart, так и сеть, это поможет, так как вы можете увидеть, остался ли он жив, даже когда другой зависает. Вы могли бы также сделать что-то вроде того, как демон демонстраций пользователей записывать на терминал (или даже модуль ядра printk) периодически, чтобы сказать «все еще здесь» - по крайней мере, это поможет вам определить, висит ли ваша оболочка, пока остальная часть системы работает, или если ядро ​​висит. Или в ответ на кнопку gpio ... –

+0

Предложение printk(), вероятно, лучше, чем процесс пользовательского пространства. Запуск в режиме реального = виртуальный режим в лучшем случае сложный. Мой голос для uCLinux. –

ответ

2

uClinux является распределение Linux, который использует ядро ​​Linux с MMU «выключено», и добавляет некоторые приложения и библиотеки на вершине из этого. Вы не будете выбирать один или любой из них, поскольку они лучше одного поверх другого.

Если вы дошли до того момента, когда у вас запущена оболочка, вам удалось загрузить Linux без санкционированного MMU на вашей плате, но столкнулся с ошибкой.

6

Прошло более двух лет с тех пор, как я задал этот вопрос. Сейчас настало время написать то, что я нашел для себя.

ucLinux был проектом, выпущенным из ядра Linux, с длинной спиной с целью разработки ядра для меньших систем MMU. Однако через некоторое время он был объединен с родительской ветвью Linux. Итак, сегодня не существует активного дистрибутива ucLinux.

Итак, если вы отключите MMU от конфигурации основного ядра, вы получите версию без MMU. Фактически, теперь есть параметры конфигурации, предоставляемые в самом ядре, посредством чего пользователь может указать макет памяти и разрешения доступа.

Cheers!

Смежные вопросы