阅读:1132回复:5
两块PCI数据传输卡,触发两个中断进行数据传输的问题?
我做了两块PCI数据传输卡,芯片是9054,目前两块
卡都能单独传输数据.但是同时使用有写问题. 卡是通过硬件触发计算机中断,然后由计算机启动DMA 传输,现在是不是两块卡同时触发中断,存在中断优先级的 问题啊 ? 这样数据传输就不能让两块卡在同一台计算机上工作 么? 给点建议啊 |
|
|
沙发#
发布于:2005-01-20 10:03
我做了两块PCI数据传输卡,芯片是9054,目前两块 具体是什么问题,A卡发的数据结果上层应用程序认为是B卡了,还是根本不能发数据?只是出了问题,就好象病人在网上(或者电话中等等)对医生说我病了,你帮我治疗吧。 这个怎么搞呢?医生当然没有办法 |
|
|
板凳#
发布于:2005-01-20 12:54
开始两块都能接受数据,
后来就只有一块能用,另外一块数据传输 好像被阻塞 |
|
|
地板#
发布于:2005-01-21 08:37
你的2个扳子的卡号最好别一样.
另外,想问一下您的中断处理程序是怎么样的?贴出来! |
|
|
地下室#
发布于:2005-01-27 17:03
我以前也遇到这个问题,主要还是中断的缘故。
用DriverStudio 写的驱动通常都是一个中断号,不管你DeviceID,VerID是否相同,就算是做成两个驱动中断号也是相同。 由于中断共享, 中断处理结构为链式结构 ISR-〉A->B 如果 B来中断就先的A来处理,当A发觉不是自己的中断才会往下传,否者就会被拦截。做DMA收不到中断当然就结束不了。 解决这个问题的方法就是在A的中断处理函数中做判断 status= m_IoPortRange0.ind(INTCSR); if(status!=0x0x200000)//DMA中断状态 return FALSE; 当然如果你还有别的中断最好也在这里做一个判断。 |
|
5楼#
发布于:2005-01-31 11:18
谢谢 Guigen80的答复
|
|
|