运行WinCE为何需要带有MMU功能的CPU支持?
在一篇介绍ARM的文章中看到:
Enhanced ARM architecture MMU to support WinCE EPOC32 and linux.
这里说的MMU是怎样支持winCE工作的啊?
也就是说在WinCE工作的时候,为什么需要提供有支持MMU功能的CPU呢?
我猜大概是跟WinCE的文件系统有关,但由于不是计算机专业出身的,实在不好妄加判断。
请教各位大虾了!
在一篇介绍ARM的文章中看到:
Enhanced ARM architecture MMU to support WinCE EPOC32 and linux.
这里说的MMU是怎样支持winCE工作的啊?
也就是说在WinCE工作的时候,为什么需要提供有支持MMU功能的CPU呢?
我猜大概是跟WinCE的文件系统有关,但由于不是计算机专业出身的,实在不好妄加判断。
请教各位大虾了!
这不是文件系统,而是操作系统要求的。一般操作系统都是给应用程序一个逻辑地址,而自己管理物理地址。这样做的好处是应用程序的错误不会导致操作系统的崩溃。如在ARM中应用程序要存取非法地址,则系统会产生一个中断,这时操作系统处理这个中断,提示应用程序出错,从而保护整个系统不至于当掉。距我所知不需要MMU功能的RTOS很少,只有如ucLinx、ucOS等。
谢谢
系统将给应用程序一个逻辑地址具体是指什么意思?
比如应用程序运行在一个OS分配给它的RAM空间里面,如果它还要对CPU寄存器进行读写操作。这时的寄存器空间将肯定不会是在OS分配给应用程序运行的空间里的,那么是不是意味着对寄存器操作的地址就是非法地址了呐?
谁能比较详细的告诉我一下CPU的MMU模块是怎样工作的吗?
CPU寄存器没有映射到系统地址空间,在任何地方都可以访问。但是一般用C/C++编程最好不要访问它们。如果为了效率等原因一定要访问,请参考APCS(ARM Procedure Call Standard)。
操作系统提供给应用程序的十虚拟的存储空间,
MMU实现虚拟存储空间到物理存储空间的映射。