zab
zab
驱动小牛
驱动小牛
  • 注册日期2001-07-04
  • 最后登录2008-01-10
  • 粉丝0
  • 关注0
  • 积分126分
  • 威望14点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
阅读:1334回复:5

救命!ds开发PCI驱动的问题?

楼主#
更多 发布于:2003-01-19 16:19
用ds开发PCI卡(PCI9054)的驱动,需要用到中断。用向导生成的框架程序,在ISR中需要判断是否是我的卡所发出的中断,如果是的话需要禁止中断,然后调用DPC。问题是我在ISR中加入了判断中断和禁止中断的语句后,一运行机器就重启。判断中断的方法是使用成员变量m_MemoryRange0(向导生成)读PCI9054的中断寄存器来判断,禁止中断是写入这个寄存器。我怀疑是不能用成员变量m_MemoryRange0来访问PCI9054的中断寄存器。请各位指点。

最新喜欢:

songqingsongqi...
zab
zab
驱动小牛
驱动小牛
  • 注册日期2001-07-04
  • 最后登录2008-01-10
  • 粉丝0
  • 关注0
  • 积分126分
  • 威望14点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-20 09:09
经过无数次的重启和死机,终于发现是DPC服务程序中的一段代码的问题。我把这部分代码贴在现面,高手们看看怎么回事。

// TODO: The Wizard creates a single queue for all Irps.
//If you have created additional queues, select
//the appropriate queue for this Irp here.

KIrp I(m_DriverManagedQueue.CurrentIrp());

// TODO: Set the Status and Information fields to reflect
//the success and size of the transfer
I.Status() = STATUS_SUCCESS;
I.Information() = 0;

// PnpNextIrp completes this IRP and starts processing
// for the next IRP in the driver managed queue.
m_DriverManagedQueue.PnpNextIrp(I);

// The following macros simply allows compilation  
//atwarning Level 4
// If you reference these parameters in the function simply
// remove the macro.
UNREFERENCED_PARAMETER(Arg1);
UNREFERENCED_PARAMETER(Arg2);
Buddha
驱动老牛
驱动老牛
  • 注册日期2001-04-29
  • 最后登录2013-05-18
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望17点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-22 12:46
是io还是memory?映射过么?
<table style="filter: glow(color=sky blue, strength=10)"> <font color=white> 猫生病了, 老鼠大声朗诵诗集, 并修剪盆花. 猫生病了, 老鼠慢慢刷牙洗脸, 并打扫房间. 猫生病了, 老鼠倚在窗边欣赏夜色, 并对流星许愿. 猫生病了, 老鼠也病了, 它说:"我还是习惯那种时时紧张, 处处小心, 夜夜逃亡的生活." 午夜, 我听到老鼠在叹息, 且不再读诗了. </font></table>
simonyy
驱动牛犊
驱动牛犊
  • 注册日期2002-06-26
  • 最后登录2003-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-19 23:34
兄弟
你这个问题解决没有
我也碰到了和你一样的问题
不过我的错误提示是:蓝屏DRIVER_IRQL_NOT_LESS_OR_EQUAL
当我把在ISR中把调用DPC的那句注释掉时,就不会出现蓝屏
请指教啊。。。
zab
zab
驱动小牛
驱动小牛
  • 注册日期2001-07-04
  • 最后登录2008-01-10
  • 粉丝0
  • 关注0
  • 积分126分
  • 威望14点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-20 18:12
我后来发现不是DPC的问题,把中断控制寄存器映射到I/O空间就可以了。
simonyy
驱动牛犊
驱动牛犊
  • 注册日期2002-06-26
  • 最后登录2003-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-25 15:05
不行啊
我改成IO映射还是蓝屏

我的板卡驱动是为9052写的数据采集卡驱动

不知老大能不能让我借鉴一下你的驱动程序啊
我已经被这个驱动折腾了三月拉
苦恼啊 周围也没有用DS的人请教
老大救命啊

还有就是现在注释掉DPC(为了不蓝屏)后
机器很慢 CPU占用80%都

//BOW。。。急 快要到老板给的deadline拉
游客

返回顶部