LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2720|回复: 5

嵌入式的MMU和应用程序设计的关系

[复制链接]
发表于 2005-12-12 09:22:09 | 显示全部楼层 |阅读模式
如题,mmu是内存管理单元的缩写,曾经看了一个arm_mmu详细图解的文章,感觉在设计应用程序的时候没什么关系啊。
在arm上运行的程序需要手动进行地址映射吗?如果需要该如何进行设置呢?
是不是应用程序中涉及到内存的使用,如mollac函数,memcpy函数等都对mmu的使用有关系呢?需要进行某些改动吗?
发表于 2005-12-16 08:21:45 | 显示全部楼层
MMU的作用在于将程序中的逻辑(虚拟)地址映射成内存中的物理地址,对于编写应用程序的程序员来说MMU是透明的。
对于MMU只是在系统启动的时候对它进行一些设置就可以了,编写应用程序时无需考虑。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-16 11:18:35 | 显示全部楼层
谢谢!嵌入式的东西有时候真麻烦呀,呵呵
回复 支持 反对

使用道具 举报

发表于 2005-12-23 13:32:30 | 显示全部楼层

真的完全透明?

Post by jarodwang
MMU的作用在于将程序中的逻辑(虚拟)地址映射成内存中的物理地址,对于编写应用程序的程序员来说MMU是透明的。
对于MMU只是在系统启动的时候对它进行一些设置就可以了,编写应用程序时无需考虑。

真的完全透明?
回复 支持 反对

使用道具 举报

发表于 2005-12-23 16:39:43 | 显示全部楼层
Post by 半路cai出家
真的完全透明?

当然了,就拿i386的PC机来说,也是有MMU的,但是你写程序的时候你需要考虑逻辑地址到物理地址的映射吗?这个映射是操作系统的工作,而对你写的应用程序完全透明。
回复 支持 反对

使用道具 举报

发表于 2006-3-6 21:52:58 | 显示全部楼层
MMU可是非常重要的概念,有和没有MMU对整个系统影响实在是太大了。比如对于C库来说,有些函数(比如gethostbyname、atexit)在有MMU的情况下是安全(相对于进程而言)的,而其在没有MMU的系统上甚至不是进程安全的,如果不考虑这一点,直接将C库移植在没有MMU的系统上,也许编译可以通过,当在运行的时候,就会出现致命错误。
    在没有MMU的系统中,最让人头痛的莫过于errno,大家考虑如何在没有MMU的系统下实现它,要让它是进程安全的。
    另外,在没有MMU的系统中,因为不存在独立的进程空间,所有进程共享一个空间(物理空间),所以在创建进程时有非常重要的限制。比如在没有MMU的系统下,只能使用vfork来创建进程,创建进程后,子进程将开始运行,而父进程则阻塞,直到子进程调用exit退出或者execve替换进程映象。
    上述区别对于用户空间程序员来说是何其重要!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表