最近论坛有个linux移植stm32 的帖子 ,然后谷歌了一下看到
http://nommu.org/
总结一下:
1.没有mmu的机器将会使用直接使用物理地址,所有程序将使用统一的地址空间
2.所有的应用程序必须编译成完全可重定向,就是动态链接库的编译原理,这样程序就可以被加载到任何地址运行
3.编译阶段必须固定栈区大小还必须要小,不然分配内存会有很大问题
4.内存频繁使用后将产生大量的内存碎片
简单的说多跑两次程序可能就没有足够多的连续空间可以用的了,看来没有mmu跑linux最大的问题还是内存碎片,现在也没什么好的解决方案
你的意思,FREERTOS运行时间长或任务多,也会死机了???
其实我觉得意义也不太大,毕竟STM32的内存就那么点, 而Linux下大部分应用的内存使用都比较大的说。 能移植到STM32上来的 也应该有限。 当然扩展SDRAM另说
必须要外挂的..不然内核都加载不下
还有在普通arm移植一个小应用物理内存占用不是很高,但是虚拟内存占用是比较高的
对应到stm32就是要把所有的虚拟内存占用全部换成物理内存占用,所以对于内存的压力还是很高的
在stm32下64M内存可能都没有arm9下32M内存好用
还有就是速度。不知道STM32的SDRAM能跑到好多。还有cache的加成。 实际效果感觉小牛拉大车。linux主要也是组件多,但是STM32有是有些吃力。 定位在单片机,还是干单片机的活比较好。 哈哈。
我觉得Linus Torvalds大神肯定都想到了这些,要是问题这么明显,它也不会让Linux主线支持noMMU的。
一周热门 更多>