各位老大,我现在对一个pci芯片的寄存器进行访问,这个芯片是内存映射的,我的访问方式是 pBuffer->length=(*(volatile UINT8 *)(cantemp->Baseaddress+Message15+Messagecon))>>DL...
全文
回复(27) 2004-12-10 11:55 来自版块 - Wince 程序开发
表情
degyhy123老大,我也想过这个问题,所以在调试状态下曾经把那个内存工具关了,但是现象依旧。(2004-12-14 15:12)
wxl_50685330你看到的虚拟地址最终仿真器也是从物理地址读来的嘛,仿真器要读还不是要发读命令,当然,所谓读命令对不同控制方式的设备含义是不一样的,比如对SDRAM,是同过/cs,/we,/cas,/ras,cke等等控制信号线的组合来给其内部控制寄存器提供命令,还有很多方式,我就不多说了,有些设...(2004-12-14 13:54)
degyhy123是不是debugger和你的代码混着读这个地址破坏了时序了??可以说的详细一点吗,还有我看的内存地址是我的虚拟地址不是物理地址,这才是我奇怪的地方,(2004-12-14 13:36)
wxl_50685330你在读那段数据的时候不要把看mem的窗口打开看那段数,是不是debugger和你的代码混着读这个地址破坏了时序了,对了,你在mem里面看的那段地址空间就是0xe8000000?(2004-12-14 13:03)
degyhy123可以肯定板子是没有问题的,现在最奇怪的事情是用pb带的mem观看的程序可以看到我的那段虚拟内存的值是正确。真是太奇怪了(2004-12-13 16:52)
wxl_50685330喔,兄弟说得对,virtualcopy应该可以,0xe8000000这个已经超多ce内核地址了,这个地址应该是给的物理地址, 而且给了PAGE_NOCACHE的,ce应该知道用不可缓存地址来访问。 对了,确定板子没问题?(2004-12-13 16:24)
wwei_wang有没有可能是你对CAN接口芯片的操作有问题?如通过CAN的发送或接收。(2004-12-13 14:37)
degyhy123现在还有一个很奇怪的现象,我头几次没有读到数据,但是多发几次就收到正常了,正是奇怪了,我用pb的mem观察工具就每次都可以看到(2004-12-13 13:27)
degyhy123老大,我现在是用 pDevDesc->adwMemBase[dwIndex] =(DWORD) VirtualAlloc( 0,pDevDesc->Info.Window.memWindows[dwIndex].dwLen, MEM_RESERVE, PAGE_NO...(2004-12-11 10:28)
wxl_50685330MmMapIoSpace这个不是指用来映射i/o空间的的意思,这个和HalTranslateBusAddress一起用来映射总线空间到虚拟mem空间,你的作了第一步,现在用MmMapIoSpace映射一次就行了。你试试(2004-12-10 17:45)

返回顶部