在ARM Cortex-R4上运行无MMU的Linux

时间:2012-05-18 06:58:12

标签: c memory memory-management filesystems embedded-linux

我正在为我的系统使用ARM Cortex-R4。它有一个内存保护单元而不是内存管理单元。实际上,这意味着存在用于内存保护的专用硬件,但物理地址和虚拟地址之间存在一对一的映射。我对应该使用哪种Linux感到困惑 - 禁用MMU或uCLinux的标准Linux内核。

在ARM的评估板上,我运行了在禁用MMU的情况下编译的标准内核。我使用了官方ARM网站上提供的cramfs文件系统。在内核启动之后,我在shell中,但是我无法进行太多实验,因为我发现,大多数情况下,shell停止响应(特别是当我按“tab”进行自动完成时)。 / p>

因此,如果我使用正确的文件系统,我仍然不确定MMU-less内核是否应该运行顺畅。另外,我应该将哪个发行版(buildroot?)用于no-VM Linux?

欢迎任何想法或建议。

3 个答案:

答案 0 :(得分:8)

我问这个问题已经两年多了。现在是我应该为自己写的东西的时候了。

ucLinux是一个早期从Linux内核派生的项目,旨在为MMU较少的系统开发内核。但是,经过一段时间后,它被合并到父Linux分支。所以,今天没有任何有效的ucLinux发行版。

因此,如果从主线内核配置中禁用MMU,您将获得无MMU版本。实际上,现在内核中提供了配置选项,用户可以指定内存布局和访问权限。

干杯!

答案 1 :(得分:2)

uClinux是一个Linux发行版,它使用Linux内核和MMU“关闭”,并在其上添加了一些应用程序和库。你不会选择其中之一,因为它们是最好的一个。

如果你到了运行shell的地步,你已经设法在你的主板上启动Linux没有MMU,但遇到了一个错误。

答案 2 :(得分:1)

我相信ucLinux是为这样的东西而建造的[mmu less systems] http://www.uclinux.org/description/