阅读:1451回复:2
ARM里物理地址与虚拟地址的问题
在XScale的源代码中发现GPIO寄存器基地址有三个,分别是:
GPIO_BASE_PHYSICAL; GPIO_BASE_C_VIRTUAL; GPIO_BASE_U_VIRTUAL ; 上网查了查,说是第一个与第二个地址是对于ARM内核的内存地址映射,第二个地址相当于WinCE系统的物理地址。那么请问第三个属于哪类地址呢? 在WinCE程序中做地址映射时用下面哪个代码: (1)v_pGPIOReg = (GPIO_REGS *)VirtualAllocCopy(0x20, "AudioInitialize: VirtualAllocCopy failed v_pGPIOReg", (PVOID)(GPIO_BASE_C_VIRTUAL)); (2)v_pGPIOReg = (GPIO_REGS *)VirtualAllocCopy(0x20, "AudioInitialize: VirtualAllocCopy failed v_pGPIOReg", (PVOID)(GPIO_BASE_U_VIRTUAL)); 谢谢 |
|
|
沙发#
发布于:2008-08-29 16:20
GPIO_BASE_U_VIRTUAL ;
|
|
|
板凳#
发布于:2008-09-02 21:23
GPIO_BASE_PHYSICAL; 物理地址
GPIO_BASE_C_VIRTUAL; 带缓存的虚拟地址 GPIO_BASE_U_VIRTUAL ; 不带缓存的虚拟地址 在一般的应用程序中访问 I/O 是访问它的缓存段虚拟地址,而驱动中必须访问无缓存段虚拟地址 |
|