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

返回顶部