laoge
驱动牛犊
驱动牛犊
  • 注册日期2003-12-03
  • 最后登录2005-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2175回复:1

超具挑战性!!!windriver下9054的DMA操作(中断模式)

楼主#
更多 发布于:2005-03-08 02:42
请教大侠一个windriver下9054的DMA操作问题。
我们都知道windriver的PLX例子给出了解决DMA操作的实例。但是,它提供的范例是查询模式的,即while(!P9054_DMAIsDone(hPlx,hDma))。这样太浪费CPU时间,我们希望能够使用中断来完成DMA,即用LINT中断开始DMA操作并禁止新LINT中断,而用DMA完成中断来重新开LINT中断。
我们的思路是在中断服务中监测9054的中断控制寄存器,并据此做出相应操作。但我们目前遇到的问题是如何把DMA的handle--hDma传递到中断服务程序而无需修改整个windriver下9054的数据结构。因为InterruptEnable()中的pData被用来传递hPlx了,而hPlx中没有hDma,淡然可以通过修改数据结构,增加一个包含hPlx和hDma的新结构,可是这样的话,P9054_lib的很多程序都要改写,太麻烦。
谢谢指教!
zhuo811
驱动牛犊
驱动牛犊
  • 注册日期2008-02-13
  • 最后登录2010-06-21
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望198点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-09-08 21:18
pData是做什么用的?你是如何跳出中断处理函数的?为什么我屏蔽了中断使能位,还是跳不出来?
游客

返回顶部