我正在爲我的系統使用ARM Cortex-R4。它有一個內存保護單元,而不是一個內存管理單元。實際上,這意味着有專門的硬件來保護內存,但是物理地址和虛擬地址之間存在一對一的映射關係。我有點困惑,我應該選擇哪種Linux - 禁用MMU或uCLinux的標準Linux內核。在ARM Cortex-R4上運行無MMU的Linux
在ARM的評估板上,我運行了標準內核,禁用了MMU編譯。我使用了官方ARM網站上提供的cramfs文件系統。內核啓動後,我在外殼中,但我無法做太多的實驗,因爲我發現大多數情況下,外殼會停止響應(特別是當我按「選項卡」進行自動完成時)。
因此,如果我使用正確的文件系統,我仍然不確定無MMU內核是否應該順利運行。另外,我應該使用哪個發行版(buildroot?)用於no-VM Linux?
歡迎任何想法或建議。
聽起來就像你需要弄清楚究竟是什麼崩潰以及爲什麼,而不是猜測它是內核還是文件系統。如果你能獲得第二條進入董事會的路徑 - 比如說uart和網絡,這將有所幫助,因爲你可以看到一個人是否仍然活着,即使其他人掛起。你也可以做一些事情,比如讓一個用戶空間守護進程定期寫入終端(甚至是內核模塊printk)來說「還在這裏」 - 至少這會幫助你確定在系統的其他部分運行時你的shell是否掛起,或者內核掛起。或者響應一個gpio按鈕... –
printk()建議可能比用戶空間進程更好。在真實模式下運行=虛擬模式充滿挑戰。我的投票是針對uCLinux的。 –