edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
阅读:1468回复:15

同类型多板卡的驱动问题

楼主#
更多 发布于:2003-12-29 14:43
各位高手,你们好!
今天一不小心被老板逮了个问题,同样的板卡装在一台机子上,驱动应该怎样处理,当场被问死,为了寻求解决办法,请高手们支援,否则,我过年都怕回不了家了。
在此,先行谢过。
hhm
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-29 14:48
不好意思,这里指的是多块同样的板子共存于一台机子上,请问驱动怎样写才行?
hhm
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-29 16:45
用户被禁言,该主题自动屏蔽!
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-29 17:38
原来的驱动肯定是不能用了,除非你每块卡安一个驱动,而且要创建的设备名就要不一样,这个可以通过注册表判断有几块卡,要不就在一个驱动里面把多卡情况也考虑到,直接处理多卡,ISR的中断号可以共享,改的地方就是有中断来了去读卡的中断状态寄存器判断是谁来的中断,另外就是对上层来的请求根据你自己的策略看发送给谁。可以自定义FILE_DEVICE_XXX后让IOCTL不同的代码来区分我看可以。这种情况对于卡数目固定的好办,如果不清楚有几块,而且可以动态添加的就需要注册表了吧,麻烦一点儿,但也只是工作量的问题。
根据地的兄弟们,团结就是力量
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-29 18:00
首先得谢谢以上两位朋友的热心指点。不过,以前没有接触过类似的问题,而且对于驱动基本上没什么概念,虽然写过几个,但都是单卡的情况,请问能不能讲的具体一点,或者发点代码实例什么的,就感激不尽了。
E-mail:edbert@hotmail.com
hhm
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-29 18:04
浏览了以往的一个类似的问题,有人答复说创建多个linkname,那么请问在APP中虽然是打开的linkname不一样,但是最终进入的驱动却是同一个,这是否涉及了代码重入?DeviceExtensioin中定义的全局变量岂不是受到限制和影响?
hhm
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-29 18:34
用户被禁言,该主题自动屏蔽!
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-12-30 09:33
谢谢pengenwen,让我明白了DeviceExtension不受影响的道理。那么,我直接在AddDevice()中根据被调用的情况生成不同的linkname,
然后在APP中对不同的设备执行CreatFile(linkname_n),可以吗?是不是每有一个新的设备都会调用一次AddDevice()?
谢谢!
hhm
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-12-30 09:36
还有就是,除了AddDevice()需要修改以外,在单卡驱动的基础上,还要修改那些部分?
hhm
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
9楼#
发布于:2003-12-30 10:35
谢谢pengenwen,让我明白了DeviceExtension不受影响的道理。那么,我直接在AddDevice()中根据被调用的情况生成不同的linkname,
然后在APP中对不同的设备执行CreatFile(linkname_n),可以吗?是不是每有一个新的设备都会调用一次AddDevice()?
谢谢!


应该是每有一个新的设备都会调用一次AddDevice()
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
10楼#
发布于:2003-12-30 10:47
还有就是,除了AddDevice()需要修改以外,在单卡驱动的基础上,还要修改那些部分?


还有就是要注意全局变量和静态变量最好改成DeviceExtensioin的一个member value,不然的话,它们的值会影响所有的设备。
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-12-30 10:52
那么,现在有没有那位大师把解决同类型多块板卡共存一机的驱动问题给一个详尽的总结性陈述。我想,这将为我以及更多的关注这一问题的朋友带来深刻的影响和莫大的帮助。
这里先谢了。
另分数我可是捏的两手出汗了,^_^。
hhm
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-12-30 11:15
用户被禁言,该主题自动屏蔽!
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-12-30 15:11
我决定给分:pengenwen 和 seaquester ,如何送出分数?二位,拜托!

 
hhm
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-12-30 15:32
用户被禁言,该主题自动屏蔽!
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-12-30 18:51
不好意思,分是太少了点。以后补上。因为看见默认分是20,又想给两个人,所以....
hhm
游客

返回顶部