[国嵌攻略][049][中断处理流程深度剖析]
中断的生命周期
1.串口控制器产生事件,送到中断控制器,如果通过中断控制器的过滤,由中断控制器把事件送到CPU核
2.中断信号产生(中断源)->中断信号过滤(中断控制器)->中断信号处理(CPU)
中断源
在中断的生命周期中,中断源的作用是负责产生中断信号。2440支持60个中断源;6410支持64个中断源;210支持93个中断源
中断过滤
1.中断信号送到中断控制器来了之后,中断控制器要进行过滤
2.串口子中断TX0的过滤过程:
2.1.首先,当TX0产生中断后SUBSRCPND中相应的位会被置1
2.2.然后,经过SUBMASK过滤,如果SUBMASK相应的位被置为1,表示屏蔽子中断,置为0表示,接收子中断信号,每一位对应一个子中断源
2.3.接着,经过了SUBMASK过滤后的中断会把SRCPND相应的位置为1
2.4.然后,经过MASK过滤,如果MASK相应的位被置为1,表示屏蔽中断信号,置为0表示接收中断信号,每一位对应一个中断源。有的中断没有子中断,就直接经过SRCPND和MASK来过滤
2.5.通过SUBMASK和MASK的过滤后,就好交给Priority,优先级判断,然后交给处理器处理
2.6.MODE表示中断是快速中断还是普通中断,如果是快速中断,则不会经过优先级判断,优先被处理器处理
中断处理
1.中断处理方式:非向量中断处理方式(2440)和向量中断处理方式(6410/210)
2.非向量中断处理过程:中断程序总入口->保存环境->判断中断源->调用对应的中断源的中断处理程序->恢复环境
3.向量中断处理过程:当中断产生时直接跳转到用户设置好的中断处理程序(初始化中断控制器时设置)->保存环境->设备的中断处理->恢复环境
4.软件需要处理:1.初始化中断源 2.初始化中断控制器 3.中断处理程序