★中断控制机制
CPU在运行过程中,怎样知道外部设备需要进行一些事件的处理呢?比如在一个按键程序设计中,按下某个按键,蜂鸣器会发出响声。当按下按键的时候,CPU怎样知道按键已经被按下,并且调用相应的蜂鸣器处理函数呢?在这里有两种方式,一种是轮询,另一种是中断。
◇轮询
轮询就是让CPU不同的循环检测有没有按键被按下,如果检测到按键被按下了,就马上执行其他的操作。但是这种方式会降低CPU的效率,因为当CPU在轮询的时候会浪费大量的时间,而这些时间本可以处理很多其他的事情。
◇中断
中断就是当CPU在处理其他事情的时候,按键被按下,然后通过某种方式通知到CPU,CPU会保存并停止目前做的事情,跳转到一个固定的地址,去处理这个按键中断,处理完之后再回过头来处理前面做的事情。中断的好处就解决了轮询方式产生的缺点,可以大大的提高CPU的效率。
★中断处理流程相关寄存器
中断能提高CPU的效率,那么中断从中断源的产生到时间被CPU处理这个过程中,它的流程是怎样的?有哪些寄存器?分别有什么作用?
◇中断源
中断源有外部中断源与内部中断源之分。内部中断源是指在CPU内部产生的中断信号,例如时钟中断源,串口中断等等。外部中断是指在CPU以外,嵌入式系统中的产生的中断信号,例如:各种传感器等等。
◇中断处理流程
▲S3C2440中断处理流程