《三》STM32中断以及中断解析

1、什么是中断:

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行

2、中断功能:

2.1提高计算机系统效率。

计算机系统中处理机的工作速度远高于外围设备的工作速度。通过中断可以协调它们之间的工作。当外围设备需要与处理机交换信息时,由外围设备向处理机发出中断请求,处理机及时响应并作相应处理。不交换信息时,处理机和外围设备处于各自独立的并行工作状态。

2.2维持系统可靠正常工作。

现代计算机中,程序员不能直接干预和操纵机器,必须通过中断系统向操作系统发出请求,由操作系统来实现人为干预。主存储器中往往有多道程序和各自的存储空间。在程序运行过程中,如出现越界访问,有可能引起程序混乱或相互破坏信息。为避免这类事件的发生,由存储管理部件进行监测,一旦发生越界访问,向处理机发出中断请求,处理机立即采取保护措施。

2.3满足实时处理要求。

在实时系统中,各种监测和控制装置随机地向处理机发出中断请求,处理机随时响应并进行处理。

2.4提供故障现场处理手段。

处理机中设有各种故障检测和错误诊断的部件,一旦发现故障或错误,立即发出中断请求,进行故障现场记录和隔离,为进一步处理提供必要的依据。

3、中断过程

①中断源发出中断请求;

②判断当前处理机是否允许中断和该中断源是否被屏蔽;

③优先权排队;

④处理机执行完当前指令或当前指令无法执行完,则立即停止当前程序,保护断点地址和处理机当前状态,转入相应的中断服务程序;

⑤执行中断服务程序;

⑥恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。上述过程中前四项操作是由硬件完成的,后两项是由软件完成的。

4、中断解析:

电脑上的CPU通常做两件事情 :处理中断和处理进程

4.1CPU为什么要有中断?

CPU的处理速度远远快于外设的处理速度。如果CPU要和外设进行通信,CPU可以采用两种方式。

(1)轮训方式,但是这种方式会让CPU的资源无法得到更好地利用,CPU只会干一件事情,也会做很多的无用功(在网上看到一个比较有意思的比喻,比如你在厨房烧开水的时候,采用轮训的方式就好比一直盯着这个水壶,直到它烧开为止,中间会浪费很多的时间)。

(2)中断方式,CPU可以在外设没有准备就绪的时候,可以干别的任务(处理进程,处理中断)。一旦外设准备就绪,外设会给CPU发送一个中断信号,CPU处理完毕,接着执行之前被打断的任务,保证了CPU的资源得到更好的利用。(比如在厨房烧开水的时候,别人来敲门了,你可以去开门,或者去看会电视,等到水壶发出水烧开的声音的时候,再回头去处理它)

4.2 中断的优先级,中断的硬件触发流程

还是拿烧开水为例子,在烧开水的时候,我可以做其他事情,我判断哪个事情比较重要,我就先做哪个。比如我觉得我在水烧开之前能够做两件事情。取快递和看电视,那我觉得取快递比烧开水重要,我就选择先去取快递,之后再回来看电视,最后水烧开了再去厨房处理它。中断优先级就好比这个例子,比较形象。那中断优先级的处理由专门的中断控制器来判断。硬件外设产生硬件的电信号变化,这个电信号首先发送给中断控制器(中断控制器:能够打开、关闭中断,能够指定中断的优先级,还能够判断是否发生),中断控制器判断是否使能,判断优先级,最终决定是否给CPU发送电信号。CPU一旦检测到这个电信号以后,CPU后续就要处理这个中断。

你可能感兴趣的:(嵌入式学习总结)