一、中断的基本概念
中断的定义及中断工作方式
中断,即CPU在正常执行程序的过程中,遇到外部(例如常见的按键中断)/内部(例如定时器中断)的紧急事件需要处理,暂时中断(中止)当前程序的执行,而转去为事件服务,待服务完毕,再返回到暂停处(断点)继续执行原来的程序。
通俗的说:比如我正在写代码,老板突然给我一个任务,我暂停的写代码,转而把老板布置的任务完成之后,再继续写代码,这个过程就可以理解成中断。
从中断的定义中引出了以下几个新的概念:
1.事件的“偶然”性与“必然”性
例如,计算机键盘、鼠标的设置就为计算机系统增加了两个必然的“偶然”事件发生的机会。
通俗一点来讲,中断,意味着中途打断现在干的事情,要立即处理紧急的事件。
现实的例子:手机玩游戏的时候,突然来电话。在编程当中还常遇到实时接收数据的请求,都使用中断服务函数,示例如下:
2.中断的作用
- 提高硬件响应,及时处理。
3.中断源(中断触发的硬件)
(1)中断源:介于事件与CPU之间的电路模块。
(2)中断请求信号:事件引起的,由中断源产生的,能被单片机识别的信号。
4.中断类型
中断产生来源于事件。因此根据事件来源地,将中断分为外部中断和内部中断两种类型。
外部中断是指由单片机外部事件引发的中断。
内部中断是指由单片机芯片内部事件引发的中断。
5.中断优先级
事件具有不同的轻重、缓急程度。系统工作时,我们总希望最紧急的事件优先被处理,以保证系统的实时性。这就引出了中断的优先级、中断嵌套问题。
与中断控制器相连的每条线叫做中断线,要使用中断线,就得进行中断线的申请,就是IRQ,把申请一条中断线称为申请一个IRQ或者是申请一个中断号。IRQ和向量之间的映射可以通过中断控制器进行修改。
二、异常与中断
(一)概述
《Cortex M3与M4权威指南》章节4.5 P104
Exceptions are events that cause changes to program flow. When one happens, the processor suspends the current executing task and executes a part of the program called the exception handler. After the execution of the exception handler is completed, the processor then resumes normal program execution. **In the ARM architecture**, **interrupts** **are one type of** **exception**. Interrupts are usually generated from peripheral or external inputs, and in some cases they can be triggered by software. The exception handlers for interrupts are also referred to as Interrupt Service Routines (ISR)。
异常是导致程序流更改的事件。发生这种情况时,处理器暂停当前正在执行的任务,并执行程序的一部分,称为异常处理程序。异常处理程序执行完成后,处理器恢复正常程序执行**在ARM架构**,**中断****是****异常**的一种类型。中断通常由外围或外部输入产生,在某些情况下,可以由软件触发。中断的异常处理程序也称为中断服务例程(ISR)
Each exception source has an exception number. Exception numbers 1 to 15 as system excep