guantou21
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2005-07-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1735回复:6

急问!DMA读取数据不对?

楼主#
更多 发布于:2005-04-19 15:22
从Local端向PCI端进行DMA读传输。用8bit传输。但是现在都只能正确读出第一个地址的内容。其他的地址上虽然有数据,但是就是读不出来。地址里的数据使用windriver的诊断程序看过了,是没有问题的。
读取的数据类似如下:
00  01  02  03  ffffffff  00 ffffffff  ffffffff  00......
这是怎么回事呢?
我是用的driverstudio做的驱动。仿照武安和那本书中的例子做的。如果是一直读取00(DWORD)地址的内容,也就是前四个8bit数据倒是没什么问题的。 是不是什么地方设置的内容呢?
如果谁知道麻烦告诉我一下。解决问题一定给分。
wei_ziyong
驱动牛犊
驱动牛犊
  • 注册日期2003-12-31
  • 最后登录2010-04-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望16点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-19 17:44
你在驱动程序中是不是把DMA 控制器的数据传输长度设置成为只传输4各字节了,看你的长度设置的对不对!
guantou21
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2005-07-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-20 13:43
忘了说了,我用的是9054片子。
你说的是不是(DMASIZ0; PCI:8Ch, LOC:10Ch) DMA Channel 0 Transfer Size (Bytes)寄存器?这个应该没有问题。因为我可以读出需要个数的数据,只是内容不对。这是什么问题呢?
guantou21
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2005-07-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-24 12:22
目前问题解决了,把每个地址先写一遍数据,再再读取,就全都对了。反正这里把这个情况说一下,如果谁碰到类似的情况就有参考了。但是有人知道这是怎么回事吗?为什么会这样啊?
ahhww
驱动牛犊
驱动牛犊
  • 注册日期2004-12-02
  • 最后登录2006-07-13
  • 粉丝0
  • 关注0
  • 积分38分
  • 威望6点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-24 18:26
长了一点知识,谢谢楼主 :D
eagelangel
驱动牛犊
驱动牛犊
  • 注册日期2005-04-13
  • 最后登录2005-06-29
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-06-21 12:32
说不定马上就可以用到了,谢谢!!
superlee19
驱动牛犊
驱动牛犊
  • 注册日期2005-04-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-06-23 16:16
啥子叫把每个地址先写一遍?那再读出来的还不是自己写的数据啊。
游客

返回顶部