阅读:1055回复:1
WDM怎样知道我选择PCI的内存范围?!
先讲讲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: |
|
沙发#
发布于:2004-02-23 09:27
?!请好心的人告诉我!!!
|
|