qinshou211
驱动牛犊
驱动牛犊
  • 注册日期2009-05-16
  • 最后登录2010-03-09
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望191点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2446回复:4

请问有哪位正在用windriver调试9054板卡呢?可以交流一下否?

楼主#
更多 发布于:2009-10-10 22:52
目前上位机已经可以使用windriver生成的驱动程序通过single方式与板卡进行简单的数据通信了,但是目前我想实现快速的burst传输,请问哪位朋友弄过可否给一下指点呢?因为手册都是英文的,看起来有的地方模棱两可,再一个windriver内有一个叫做block传输的方式,的确可以自动传输多次数据,但是没有像9054手册上写的那样再一个传输周期内,而是建立了不同的传输周期,这非常影响速度。因此我想问一下如何才能进行真正意义上的burst传输呢?


再一个就是burst传输和dma传输到底区别在哪里呢?请有经验的朋友给指点一下好吗?先谢谢了
qinshou211
驱动牛犊
驱动牛犊
  • 注册日期2009-05-16
  • 最后登录2010-03-09
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望191点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-10-20 21:12
问题已经解决了,原来x86架构的CPU就不支持burst传输,DMA也成功了,该调中断了
philoman
驱动牛犊
驱动牛犊
  • 注册日期2005-05-29
  • 最后登录2011-07-13
  • 粉丝0
  • 关注0
  • 积分73分
  • 威望235点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-12-08 21:03
是这样的,Local侧的总线上支持三种读写方式,单周期/Burst-4/Busrt-Forever;单周期很简单,不用说了;当使能Busrt(LBRD0[24], LBRD1[8])时,即为Burst-4模式,若同时使能Busrt和Bterm(LBRD0[7], LBRD1[7]),则为Burst Forever模式;
所谓DMA,其实就是利用PCI9054上的DMA控制器进行数据传送,此时CPU可以做其他的处理,而不必等待DMA的完成;当使用DMA是,需要配置相应的DMA寄存器,然后启动DMA传输,详见WinDriver中提供的P9054_DMAOpen()函数;
DMA操作与Burst并不是必然相关的,亦即DMA可以单周期/Burst-4/Burst-Forever任意一种,当然,为了提供数据吞吐率,一般采用的是Burst-Forever方式;
philoman
驱动牛犊
驱动牛犊
  • 注册日期2005-05-29
  • 最后登录2011-07-13
  • 粉丝0
  • 关注0
  • 积分73分
  • 威望235点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-12-08 21:07
另DMA的时候还需注意的一些限制:
操作系统知识
    内存管理,4KB/Page
    Virtual Address/Physical Address

WinDriver编程限制
    WD_DMALock()
    最多256块,最坏情况:4KBx256~=1MB
    DMA_LARGE_BUFFER,针对>1MB的情况

PCI9054限制:
    DMASIZ,仅低23位有效,2^23=8MB
qinshou211
驱动牛犊
驱动牛犊
  • 注册日期2009-05-16
  • 最后登录2010-03-09
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望191点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-01-16 15:00
多谢楼上的讲解,虽然晚了些,不知道请问是否可以留下联系方式?我正在调节中断,出了些问题,可否讨论一下404042216,我的QQ
请关注一下我这个帖子,看看是否可以帮忙解决,谢谢了http://bbs.driverdevelop.com/htm_data/18/1001/119638.html
游客

返回顶部