yjhleaf
驱动小牛
驱动小牛
  • 注册日期2001-11-04
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1103回复:3

5933求助

楼主#
更多 发布于:2002-09-29 11:28
  pci控制器是5933。系统加电后,pci设备的中断寄存器需要自己初始化吗?不初始的话,是不是开始就为0?
  我是通过5933收到中断,然后置事件来通知用户程序读(用的是deviceiocontrl),在驱动程序里面是系统排队的。用户程序用deviceiocontrl来向设备写数据。假如中断来的很快,不停的叫我读,而我这时又在写数据。这样会死机吗?怎样才能够合理的安排一下?大家给点意见吧。


忽如一夜春风来,千树万树梨花开。
mengzi
驱动牛犊
驱动牛犊
  • 注册日期2001-08-02
  • 最后登录2004-05-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-09-29 17:33
由BIOS进行配置。
通常不会死机,但最好加上临界段例程
yjhleaf
驱动小牛
驱动小牛
  • 注册日期2001-11-04
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-09-29 20:28
  在nt下面,我查看了,读5933的中断寄存器(没有初始化的时候)是0。
 老大,我发现经常引起机器蓝屏的原因可能是中断处理。所以我在读数据的时候屏蔽掉中断。pci设备是电平触发的,假如我不马上响应它,电平应当保持吧。我想应当也不会丢数据。
 送点分你!老大你得好好干啊。
忽如一夜春风来,千树万树梨花开。
mengzi
驱动牛犊
驱动牛犊
  • 注册日期2001-08-02
  • 最后登录2004-05-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-09-30 08:38
在nt下面,5933的pci配置寄存器的中断线(为1,INTA#),中断号通常为(9,10, 11,15等,其它不是给pci用的, 你在bios下也可看到一部分保留给isa用的,pci就用不了了),你说的5933的中断寄存器是否指PCI操作寄存器(0x38),如果中断来了,在该寄存器的bit24(可能是这个位吧)会是1,中断来了INTA#一直保持为低电平,你可以不理睬它,但是一旦驱程有ISR,就需要立即响应,清中断(释放INTA#),然后将任务交给DPC,返回true,否则死机是要发生的。写数据时,可能中断来了,那么就会中断写操作,等读操作完成后在继续写动作,而如果写采用临界段例程,中断来了,如果你正在写,中断ISR不会响应(一旦响应就得处理中断),这样就可以写操作完成后,接着响应中断。你以为如何?
游客

返回顶部