CPU在运行的过程中,也会被各种“异常”打断,这些“异常”有:

·指令未定义;

·指令、数据访问有问题;

·SWI(软中断);

·快中断;

·中断;

中断也属于一种“异常”,导致中断发生的情况有很多,比如:

·按键;

·定时器;

·ADC转换完成;

·UART发送完数据、收到数据;

这些众多的“中断源”,汇集到“中断控制器”,由“中断控制器”选择优先级最高的中断并通知CPU。

arm对异常(中断)处理过程:

  1. 初始化:

a. 设置中断源,让它可以产生中断;

b. 设置中断控制器(可以屏蔽某个中断,优先级);

c. 设置CPU总开关(使能中断);

  1. 执行其他程序:正常程序;

  2. 产生中断:比如按下按键->中断控制器->CPU;

  3. CPU每执行完一条指令都会检查有无中断/异常产生;