阅读:1033回复:2
ce5.0中断处理代码的问题?
OEMInterruptHandler应该是中断响应程序了,我看了一下这个函数,只处理了很少的中断,最后有一段代码
sysIntr = NKCallIntChain((UCHAR)irq); if (sysIntr == SYSINTR_CHAIN || !NKIsSysIntrValid(sysIntr)) { // IRQ wasn't claimed, use static mapping sysIntr = OALIntrTranslateIrq(irq); } 好象其他中断是在OALIntrTranslateIrq()这里处理的,应该这个函数调用了用户自己的处理函数,不知道我的理解对不对? 如果是的,自己的处理函数应该加在什么地方,函数的原形应该是什么样的,才能被该函数调用? 请各位高手指点 |
|
沙发#
发布于:2007-09-07 18:38
OEMInterruptHandler只是做一下Sysint和IRQ之间的对应,也就是说将物理的中断号和系统中断号对应起来,并且返回系统中断号,也有些会在这里做关中断的处理,当这个返回后,CE会根据系统中断号去触发相关的事件(你的驱动在init的时候注册的),然后你的中断处理线程就开始干活了
|
|
板凳#
发布于:2007-09-10 16:38
这段代码只是做静态映射,一般来说用不着,你还是需要看看上面的中断处理代码,一般也就是关中断等一些简单的操作。对于一个处理器来说,这些 操作都可以用统一的 代码来实现,所以也就精简成了一个操作,但是注意传进来的参数是中断号。根据不同的中断号实际上是在处理不同的 中断。
|
|