ARM7在嵌入式应用中启动程序的实现
>转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。
将虚地址转换成物理地址。
控制存储器存取允许。 MMU关掉时,虚地址直接输出到物理地址总线。
本文链接地址:http://www.oyaya.net/fanwen/view/141324.html
MMU
的两个主要功能是:在实践中,使用
MMU解决了如下几个问题:DRAM作为大容量存储器时,如果DRAM的行列是非平方的,会导致该DRAM的物理地址不连续,这将给程序的编写调试造成极大不便,而适当配置MMU可将其转换成虚拟地址连续的空间。①使用
②
ARM内核的中断向量表要求放在0地址, 对于ROM在0地址的情况,无法调试中断服务程序,所以在调试阶段有必要将可读写的存储器空间映射到0地址。③系统的某些地址段是不允许被访问的,否则会产生不可预料的后果
,为了避免这类错误,可以通过MMU匹配表的设置将这些地址段设为用户不可存取类型。启动程序中生成的匹配表中包含地址映射,存储页大小
(1M,64K,或4K)以及是否允许存取等信息。例如
:目标板上的16兆DRAM的物理地址区间为0xc000, 《ARM7在嵌入式应用中启动程序的实现(第4页)》