WinCE中断处理过程

 
l         当一个中断发生后,发送到内核异常处理器(Exception Handler)
l         内核的中断支持处理器调用OAL函数OEMInterruptDisable屏蔽这个中断(../hal/Cfw.c)
l         内核调用ISR,OEMInterruptHandler(../hal/arm/Armint.c),ISR按如下方式查询中断号:
else if (IntPendVal == INTSRC_EINT1)       // Keyboard interrupt is connected to EINT1.
                     // INTSRC_EINT1 在 ../inc/s2410.h 中定义
       {
              s2410INT->rINTMSK |= BIT_EINT1;
              s2410INT->rSRCPND = BIT_EINT1;       
              if (s2410INT->rINTPND & BIT_EINT1) s2410INT->rINTPND = BIT_EINT1;
              return(SYSINTR_KEYBOARD);
//在Oalintr.h中定义或I:/WINCE420/PUBLIC/COMMON/OAK/INC/nkintr.h
       }
l         ISR返回中断号(逻辑中断标识符)给内核,内核根据此中断号绑定(InterruptInitialize函数绑定中断号核事件)的事件(Event)唤醒事件的等待线程(IST),IST在用户态完成中断处理。
l         IST调用InterruptDone来告诉操作系统中断处理完毕,操作系统再次调用OAL中的OEMInterruptDone函数完成中断的处理。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值