tgdaichen
驱动牛犊
驱动牛犊
  • 注册日期2003-09-14
  • 最后登录2005-10-02
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1164回复:4

dma 5933 缓冲区分配问题_让我头疼了2年了!!!

楼主#
更多 发布于:2004-02-09 18:55
当一次DMA完成以后产生中断,如何开始下一次DMA呢,难道是重复前一次么?对于数据采集卡要求不停的接收数据,那么是不是要开2个KCommonDmaBuffer 呢,那么这两个buffer如何进行交替的使用呢?
QJE
QJE
驱动小牛
驱动小牛
  • 注册日期2001-08-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分470分
  • 威望49点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-09 19:33
一次DMA完毕,DMA缓冲区里的数据马上拿走,让新数据重新填充。
双缓冲机制可以提高实时性。建议使用!!!
tgdaichen
驱动牛犊
驱动牛犊
  • 注册日期2003-09-14
  • 最后登录2005-10-02
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-09 19:49
谢谢指点
我就是不太清楚如何用2个BUFFER存取数据,我用的是DriverStudio2.6,amcc5933 愁死我了
wanghb369
驱动牛犊
驱动牛犊
  • 注册日期2003-02-25
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-10 09:47
需要两个中断。当板卡上的缓存满是,产生一个中断(5933 EA8)
在该驱动中在该中断的ISR中设置dma 中断条件并禁止ea8中断。
在dam中断处理程序中设置ea8 中断,禁止DMA 中断。这样循环往复。

COMMONBUFFER 开的一定要大一些,这样可以在运行其它顶层的应用程序时,减少数据的丢失。
tgdaichen
驱动牛犊
驱动牛犊
  • 注册日期2003-09-14
  • 最后登录2005-10-02
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-10 21:40
谢谢wanghb369
你说的中断(5933 EA8)我不是很清楚,您能再详细点么?isr是DS向导自动生成的,那么这个中断(5933 EA8)如何加呢?
游客

返回顶部