chuanxu
驱动牛犊
驱动牛犊
  • 注册日期2004-03-10
  • 最后登录2006-07-30
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1125回复:5

两块PCI数据传输卡,触发两个中断进行数据传输的问题?

楼主#
更多 发布于:2005-01-19 17:25
我做了两块PCI数据传输卡,芯片是9054,目前两块
卡都能单独传输数据.但是同时使用有写问题.
卡是通过硬件触发计算机中断,然后由计算机启动DMA
传输,现在是不是两块卡同时触发中断,存在中断优先级的
问题啊 ? 这样数据传输就不能让两块卡在同一台计算机上工作
么?



给点建议啊
不签可以吗?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-20 10:03
我做了两块PCI数据传输卡,芯片是9054,目前两块
卡都能单独传输数据.但是同时使用有写问题.
卡是通过硬件触发计算机中断,然后由计算机启动DMA
传输,现在是不是两块卡同时触发中断,存在中断优先级的
问题啊 ? 这样数据传输就不能让两块卡在同一台计算机上工作
么?
给点建议啊  


具体是什么问题,A卡发的数据结果上层应用程序认为是B卡了,还是根本不能发数据?只是出了问题,就好象病人在网上(或者电话中等等)对医生说我病了,你帮我治疗吧。
这个怎么搞呢?医生当然没有办法
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
chuanxu
驱动牛犊
驱动牛犊
  • 注册日期2004-03-10
  • 最后登录2006-07-30
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-01-20 12:54
开始两块都能接受数据,
后来就只有一块能用,另外一块数据传输
好像被阻塞
不签可以吗?
julan
驱动小牛
驱动小牛
  • 注册日期2001-11-23
  • 最后登录2005-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-01-21 08:37
你的2个扳子的卡号最好别一样.
另外,想问一下您的中断处理程序是怎么样的?贴出来!
echo
guigen80
驱动牛犊
驱动牛犊
  • 注册日期2004-09-01
  • 最后登录2014-12-03
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地下室#
发布于: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;
 当然如果你还有别的中断最好也在这里做一个判断。

chuanxu
驱动牛犊
驱动牛犊
  • 注册日期2004-03-10
  • 最后登录2006-07-30
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-01-31 11:18
谢谢 Guigen80的答复
不签可以吗?
游客

返回顶部