lpcoo
驱动牛犊
驱动牛犊
  • 注册日期2008-08-27
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1451回复:2

ARM里物理地址与虚拟地址的问题

楼主#
更多 发布于:2008-08-27 11:08
在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));

谢谢
驱网无线,快乐无限
shuiii
驱动牛犊
驱动牛犊
  • 注册日期2005-08-26
  • 最后登录2011-05-30
  • 粉丝1
  • 关注0
  • 积分605分
  • 威望173点
  • 贡献值0点
  • 好评度57点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-08-29 16:20
GPIO_BASE_U_VIRTUAL ;
http://www.esdevelop.cn
milkyway1888
驱动牛犊
驱动牛犊
  • 注册日期2006-10-08
  • 最后登录2011-05-07
  • 粉丝1
  • 关注0
  • 积分6分
  • 威望97点
  • 贡献值0点
  • 好评度91点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-09-02 21:23
GPIO_BASE_PHYSICAL;           物理地址
GPIO_BASE_C_VIRTUAL;         带缓存的虚拟地址
GPIO_BASE_U_VIRTUAL ;        不带缓存的虚拟地址


在一般的应用程序中访问 I/O 是访问它的缓存段虚拟地址,而驱动中必须访问无缓存段虚拟地址
游客

返回顶部