阅读:1363回复:6
映射虚拟地址的问题
我在做ide硬盘驱动的时候,把ide的物理地址通过MmMapIo……函数映射到一个虚拟地址,但是我发现这个虚拟地址在我没有插上ide数据线的时候居然能读能写,而且每次读出的数据都不一样,请问这是为什么?是不是我的映射没有成功?
|
|
沙发#
发布于:2004-12-10 10:57
兄弟,你是说在进行地址转换时,你直接调用了MmMapIoSpace函数?在这之前你没有调用HalTranslateBusAddress函数吗?
|
|
|
板凳#
发布于:2004-12-10 11:14
需要先调用这个函数吗?我没有注意啊,
不过我使用TransBusAddrToVirtual来映射效果是一样的啊 |
|
地板#
发布于:2004-12-10 12:07
调用TransBusAddrToVirtual也可以,如果调用TransBusAddrToVirtual就不需要再调用MmMapIoSpace了。你看一下调用TransBusAddrToVirtual后,AddressSpace的值1还是0啊?
|
|
|
地下室#
发布于:2004-12-10 15:18
调用后是0是1有什么说法吗?
我的板子是pxa255,调用前我设置他为0,调用后没有仔细看 |
|
5楼#
发布于:2004-12-10 16:01
刚才仔细看了一下,调用前后都是0!这说明什么问题啊?
|
|
6楼#
发布于:2004-12-13 08:27
兄弟, 我建议你在调用TransBusAddrToVirtual之前,把AddressSpace设为1。关于AddressSpace的含义,你可以参考HalTranslateBusAddress和MmMapIoSpace了。祝你好运!
:P |
|
|