s287052135
驱动牛犊
驱动牛犊
  • 注册日期2009-05-25
  • 最后登录2010-01-26
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1345回复:1

PCI中断丢失问题

楼主#
更多 发布于:2009-06-18 11:53
做一个PCI驱动,DSP发送数据给上位机。DSP写完数据后给驱动ISR,驱动在dpc中把数据转移到自己内存中,在这里建立了一个链表,并设置事件set来通知上位机,上位机通过waitforsingleobject()来得知有数据,然后用DeviceIoControl读取
数据。读取完毕后释放链表中内存。这些数据需要实时处理。

现在的问题是:DSP平均需要2ms或者更短时间给驱动一次ISR,驱动在dpc中分配内存并转移数据。但可能上位机waitforsingleobject()后处理数据时间比较长,所以结果是:
DSP发送了1000个中断,驱动也收到了1000个,并在dpc中set了。但上位机只响应了500个waitforsingleobject()。驱动中有1000个ISR和DPC,从而多申请了500个的内存。造成了内存泄露。

请问怎样才能在实时的前提下保证上位机能全部接收到中断。可不可以通过链表实现,有什么思路?
s287052135
驱动牛犊
驱动牛犊
  • 注册日期2009-05-25
  • 最后登录2010-01-26
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-06-18 14:07
自己顶一个,自己刚接触驱动,很多地方一知半解。希望有高手能提供下思路,不胜感激。
游客

返回顶部