所谓中断就是中断SoC的CPU核(异常可以引起CPU的中断)
ARM对异常的处理
1、初始化:
1)设置中断源让它可以产生中断。如某个按键可以产生中断,那么可以设置它的GPIO引脚为中断引脚;
2)设置中断控制器(中断源的优先级,将屏蔽去除);
3)设置CPU总开关使能中断
2、执行程序
3、产生中断,如按下按键后发信号给中断控制器,中断控制器再发信号给CPU
4、cou每执行完一条指令都会检查有无异常/中断产生,这是硬件决定的
5、若发现有异常/中断产生,开始处理
对于不同的异常,跳到不同的地址,进而转去执行一些代码,这些代码可以:
1)保存现场(各种寄存器)
2)分辨中断源调用对应处理函数
3)恢复现场。
中断控制器:中断源(如按键、网络数据、时钟等)可以发信号给中断控制器,而中断控制器可以发信号给CPU,告诉CPU发生了某些需要紧急处理的事情(除了中断控制器发的信号外,其他异常也可以引起CPU中断,如:指令不对时,数据访问有问题时,按下reset开关时等)
可以设置中断源让其不产生中断信号,也可以设置中断控制器让其使能/屏蔽某个在中断(中断源)