1. 异常的种类
1)IRQ,外部中断请求:外部硬件出发;2)Soft interrupt,软中断:主要应用的场合,系统调用,可以通过系统调用应用可以访问内核的地址;补充:嵌入式产品的软件架构(简图如下)三者采用不同的地址空间 不能直接进行访问
3)reset,复位:如果手机死机了,按power键;
4)undefined instruction, 未定义指令
5)data abort,数据异常
总结如下表:
异常处理的大致流程主要针对中断进行讲解,其他的类似
2. 中断异常
当手机接到一个电话时,电话模块他会接到这个信号,电话和手机内部的CPU通过某个管脚相连,电话模块通过这个管教把信号发给CPU,CPU此时正在处理其他事情,当接收到这个信号会打断当前cpu正在处理的事情。
1)ARM有两级外部中断,FIQ和IRQ
2)基于ARM系统的大多数有两个中断源
中断控制器:使cpu和外面可以接多个中断源,作中断优先级的处理;3)假设外面的中断源是一个按键,当按键按下的时候将**高电平或者低电平(上升沿或者下降沿)**作为一种触发方式;
中断处理:现场保护-> 处理中断 -> 恢复现场
如果CPU正在处理别的中断,当前中断不能得到及时处理,0.5秒后按键抬起,中断消失,解决办法:CPU通过中断标记记录所有产生的中断。
中断随机产生之后,怎么跳转到中断的处理程序中去(中断向量表)
3. 中断向量表|异常处理过程
中断随机产生之后,怎么跳转到中断的处理程序中去(中断向量表)
SWI软中断指令:模拟CPU外面的某个硬件的管脚产生中断信号
4. 软中断处理程序实例
原作者:西二旗指南