我正在为我的系统使用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的。 –