linux 在stm32等没有mmu机器上的运行原理

2019-12-14 13:31发布

最近论坛有个linux移植stm32 的帖子 ,然后谷歌了一下看到
http://nommu.org/
总结一下:
1.没有mmu的机器将会使用直接使用物理地址,所有程序将使用统一的地址空间
2.所有的应用程序必须编译成完全可重定向,就是动态链接库的编译原理,这样程序就可以被加载到任何地址运行
3.编译阶段必须固定栈区大小还必须要小,不然分配内存会有很大问题
4.内存频繁使用后将产生大量的内存碎片

简单的说多跑两次程序可能就没有足够多的连续空间可以用的了,看来没有mmu跑linux最大的问题还是内存碎片,现在也没什么好的解决方案

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
31条回答
日日♂夜夜
2019-12-17 15:32
浮华一生 发表于 2018-8-7 08:40
其实我觉得意义也不太大,毕竟STM32的内存就那么点, 而Linux下大部分应用的内存使用都比较大的说。 能移 ...

必须要外挂的..不然内核都加载不下
还有在普通arm移植一个小应用物理内存占用不是很高,但是虚拟内存占用是比较高的
对应到stm32就是要把所有的虚拟内存占用全部换成物理内存占用,所以对于内存的压力还是很高的
在stm32下64M内存可能都没有arm9下32M内存好用

一周热门 更多>