lorchid
驱动牛犊
驱动牛犊
  • 注册日期2007-03-07
  • 最后登录2007-12-13
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
阅读:1108回复:0

9054读取数据不正确,不知道什么地方出问题,希望帮助

楼主#
更多 发布于:2007-08-06 21:12
9054板卡采用的是plx_sdk的驱动,写了个应用程序,读取文件大约1Mbyte大小,存到片外sdram中,然后再读回来。采用的是scatter/gather DMA方式。
  我先在vc程序中把分配的内存,全初始化为“c”,然后装载文件,这部分内存就被文件内容覆盖,然后通过sglDMA传入sdram,(当然写的内存被释放了的)。等传完了才读取。读取分配的内存我初始化为“f”,然后等sdram传入的数据来进行覆盖,最后把这段分配的内存用writehuge()还原文件,然后和原文件比较,发现只要有不同的地方都是“f”,说明这段内存没有被影响,就是说没有数据覆盖,其他的地方都是正确的。
    但是有时候又是正确的,文件发送和接收都是对的。错的时候要多点。
    我问过师兄,他说这个是电脑来不及接收数据而造成的数据丢失。
    我知道是数据丢失,但是数据怎么会丢失就不是很清楚了。我怀疑是不是和sglDMA方式有关,它不是一段连续的内存模式,而我采用一段和传输文件大小相同的连续内存来传输,也有可能是不是和它用页链表有关哦。希望给俺个解答,谢谢。
游客

返回顶部