lsshao
驱动牛犊
驱动牛犊
  • 注册日期2004-02-03
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1055回复:1

WDM怎样知道我选择PCI的内存范围?!

楼主#
更多 发布于:2004-02-16 10:32
先讲讲Linux下的硬件访问方法:
1)先采用check_mem_region(物理内存起始地址,大小)检测,request_mem_region(物理内存起始地址,大小,驱动程序名)向系统申请该地址范围。
2)采用*ioremap(物理内存起始地址,大小)将该物理地址映射到内核空间,返回值是虚拟地址指针。
3)最后需要采用iounmap解除映射,release_mem_region释放该空间。

WDM的PCI驱动程序:通过KMemoryRange类的成员变量:
1)m_MemoryRange#;通过访问PCI配置寄存器中的基地址寄存器BAR#来确定PCI的基地址,m_MemoryRange#.Initialize(翻译资源,原始资源,PciConfig.BaseAddressIndexToOrdinal(#))。注意:这里并没有给出大小!!!
2)采用.ind/outd等进行访问
3)采用.Invalidate()无效处理。 :cool:
lsshao
驱动牛犊
驱动牛犊
  • 注册日期2004-02-03
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-23 09:27
?!请好心的人告诉我!!!
游客

返回顶部