韩美林艺术馆图片:[转] 物理地址与虚拟地址
来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 05:57:55
OEMAddressTable里定义的映射关系是给ARM MMU用的,是在KernelStart(source code参考wince420\private\目录)时建立的,只要WINCE还在跑,就不会解除. OEMAddressTable里的Virtual Addr和Physical Addr是对ARM来说的. 其实对于WINCE,就只能访问到它的Virtual address. 也就是说,OEMAddressTable里的Virtual address对WINCE 系统来说才是Physical Address.
经过OEMAddressTable映射后的系统的物理地址,在0x80000000—0x9fffffff之间.是caching and buffering的地址,这个地址加上0x20000000,就是它的cache &buffering disabled地址.所有的硬件寄存器的地址都在这个地址段上,受MMU保护的.
上面讲的系统的物理地址,从0x80000000—0xbfffffff,在Kernel Mode下都可以直接访问. ISR是在KERNEL里,也就可以直接访问这些系统的物理地址.无所谓"因为ISR只能访问静态映射的虚拟地址".
上面说过,对于ARM来说,有虚拟地址和物理地址之分,对于WINCE来说,也有虚拟地址和物理地址之分. 可以这么说,ARM的虚拟地址就是WINCE系统的物理地址. 32位的OS总共有
总结一下:VirtualAlloc/Copy 中使用的地址是OEMAddressTable里映射的虚拟地址。MmMapIoSpace里使用的必须是绝对的物理地址。对于如S