阅读:1747回复:6
急问!DMA读取数据不对?
从Local端向PCI端进行DMA读传输。用8bit传输。但是现在都只能正确读出第一个地址的内容。其他的地址上虽然有数据,但是就是读不出来。地址里的数据使用windriver的诊断程序看过了,是没有问题的。
读取的数据类似如下: 00 01 02 03 ffffffff 00 ffffffff ffffffff 00...... 这是怎么回事呢? 我是用的driverstudio做的驱动。仿照武安和那本书中的例子做的。如果是一直读取00(DWORD)地址的内容,也就是前四个8bit数据倒是没什么问题的。 是不是什么地方设置的内容呢? 如果谁知道麻烦告诉我一下。解决问题一定给分。 |
|
沙发#
发布于:2005-04-19 17:44
你在驱动程序中是不是把DMA 控制器的数据传输长度设置成为只传输4各字节了,看你的长度设置的对不对!
|
|
板凳#
发布于:2005-04-20 13:43
忘了说了,我用的是9054片子。
你说的是不是(DMASIZ0; PCI:8Ch, LOC:10Ch) DMA Channel 0 Transfer Size (Bytes)寄存器?这个应该没有问题。因为我可以读出需要个数的数据,只是内容不对。这是什么问题呢? |
|
地板#
发布于:2005-04-24 12:22
目前问题解决了,把每个地址先写一遍数据,再再读取,就全都对了。反正这里把这个情况说一下,如果谁碰到类似的情况就有参考了。但是有人知道这是怎么回事吗?为什么会这样啊?
|
|
地下室#
发布于:2005-04-24 18:26
长了一点知识,谢谢楼主 :D
|
|
5楼#
发布于:2005-06-21 12:32
说不定马上就可以用到了,谢谢!!
|
|
6楼#
发布于:2005-06-23 16:16
啥子叫把每个地址先写一遍?那再读出来的还不是自己写的数据啊。
|
|