阅读:1345回复:1
PCI中断丢失问题
做一个PCI驱动,DSP发送数据给上位机。DSP写完数据后给驱动ISR,驱动在dpc中把数据转移到自己内存中,在这里建立了一个链表,并设置事件set来通知上位机,上位机通过waitforsingleobject()来得知有数据,然后用DeviceIoControl读取
数据。读取完毕后释放链表中内存。这些数据需要实时处理。 现在的问题是:DSP平均需要2ms或者更短时间给驱动一次ISR,驱动在dpc中分配内存并转移数据。但可能上位机waitforsingleobject()后处理数据时间比较长,所以结果是: DSP发送了1000个中断,驱动也收到了1000个,并在dpc中set了。但上位机只响应了500个waitforsingleobject()。驱动中有1000个ISR和DPC,从而多申请了500个的内存。造成了内存泄露。 请问怎样才能在实时的前提下保证上位机能全部接收到中断。可不可以通过链表实现,有什么思路? |
|
沙发#
发布于:2009-06-18 14:07
自己顶一个,自己刚接触驱动,很多地方一知半解。希望有高手能提供下思路,不胜感激。
|
|