zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1646回复:4

中断注册函数的问题?(30分请教)

楼主#
更多 发布于:2003-06-30 19:11
我在open()函数中注册我的中断,可是编译通过,执行是却总是死在了那里,我想原因可能是出在那几个参数上面吧,我赋值如下:
int irq--从配置空间读出的中断线。
void (*handler)(int,void *,struct pt_regs *)--p9054_interrupt();
flags--SA_INTERRUPT:表明是快速中断处理程序
*dev_name--p9054
*dev_id--自定义的设备结构

上面的赋值有问题吗?我感觉要有问题肯定是自己对irq和dev_id 的值上面,感觉应该是通过dev_id来建立设备中断类型的,可是还是不明白到底是怎么样的一个过程,当硬件中断来了,通过什么自动执行中断服务程序呢?

困扰了三天了,请高手指教一下,一定送分的!
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-01 22:21
这个我知道,现在也已经通过了,只是自己仍然不是很明白!

硬件工作真的神奇,软件也是如此!
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-01 13:29
通过读9054的内部寄存器就可以判断这个中断是否是9054发出的!我记得是中断状态/控制寄存器。
有了驱动,人才有了力量。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-01 12:10
多谢unix1998的回答了,错误原因出在我对dev_id的理解有错误,还有就是没有识别正确的中断源!
我的板卡和别的硬件公用0X11的中断线,我不知道给怎么识别那个中断是我的?

请多指教啊!
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-01 10:00
能否说明出现的什么错误?或者说怎么死的。
可否是因为中断产生太快引起的?加个delay试试。
游客

返回顶部