tbdriver
驱动牛犊
驱动牛犊
  • 注册日期2008-07-17
  • 最后登录2008-11-03
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望28点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2030回复:2

请教:pci地址空间映射,配置寄存器,ddk下

楼主#
更多 发布于:2008-09-05 19:14
目的:配置外设pci设备的寄存器
外设dsp(dm642)的寄存器都可以通过base1的8m空间访问。映射的时候应该是用MmMapIoSpace把8M空间进行映射,比如映射成base1=MmMapIoSpace...,然后就可以通过WRITE_REGIST_UNLONG(base1+offset,..,..)等读写
想要问的是
PVOID MmMapIoSpace(
  PHYSICAL_ADDRESS PhysicalAddress,
  ULONG NumberOfBytes,
  BOOLEAN CacheEnable
);
MmMapIoSpace调用时,PhysicalAddress的值是多少的。这个值应该是在createdevice时系统系统会分配的吗,如果是,又怎么知道对应的值的(比方base1空间对应的物理地址是多少)。

不知道理解有没有错,如果不是这样映射,那又是什么样子的?

很希望得到大家指点噢,老板赶得急。。。
king00star
驱动牛犊
驱动牛犊
  • 注册日期2006-08-17
  • 最后登录2014-04-19
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望92点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-09-06 11:31
配置空间给你的时候,微软已经给你的就是PhysicalAddress,你就直接用好了
tbdriver
驱动牛犊
驱动牛犊
  • 注册日期2008-07-17
  • 最后登录2008-11-03
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望28点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-09-06 20:14
是不是说配置空间里读出的base0,base1的值就是物理地址?但是我发现这个可以修改的呀,所以觉得有些困惑
大哥能加下我qq吗 (286628127)
谢谢
引用第1楼king00star于2008-09-06 11:31发表的  :
配置空间给你的时候,微软已经给你的就是PhysicalAddress,你就直接用好了
游客

返回顶部