单片机_day7_中断

1. 基本概念

在处理器中,中断相当是对于突发事件的处理过程。

当遇到内部/外部的紧急事件需要处理时,暂时中止当前程序,转而去处理紧急事件,

待处理完毕后,再返回被打断的程序继续向下运行。

暂停:保护现场

继续:恢复现场

2. 中断的意义

中断能够对突发事件进行及时处理,实现程序的并行化(时间片),进而提高CPU的工作效率。当发生突发事件时,比如外部触发的输入信号、定时器溢出等,中断会立即打断正在执行的程序,转而执行中断服务函数(ISR)来处理该事件。

关于并行化解释:

在STM32中,程序的并行化是指通过使用中断机制,使得当发生突发事件时,可以立即处理该事件,而不需要等待当前正在执行的程序完成。

传统的程序执行方式是顺序执行,即按照代码的顺序逐行执行。这种方式存在一个问题,即当程序执行某个任务时,如果发生了突发事件,程序需要等待当前任务执行完毕才能响应事件。这可能导致事件处理延迟,影响系统的响应速度。

而使用中断机制可以解决这个问题。当发生突发事件时,比如外部输入信号触发的中断,系统会立即打断当前正在执行的程序,转而执行与该事件相关的中断服务函数。中断服务函数可以快速响应事件并处理相应的逻辑,而无需等待当前任务的完成。

通过这种方式,程序的执行可以在某个任务被打断的同时,立即响应其他突发事件。这样就实现了程序的并行化处理,提高了系统的响应速度和效率。

为什么提高效率了?

因为CPU对于没有发生的事情是在不停的在轮询(询问有没有发生?)

中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程之间的切换

3.  中断处理过程(背过)

中断处理过程

进入中断

处理器自动保存现场到堆栈里(堆栈——内存)

{PC, xPSR, R0-R3, R12, LR}

一旦入栈结束,ISR便可开始执行(中断服务程序)

退出中断

中断前的现场被自动从堆栈中恢复

2. 一旦出栈完成,继续执行被中断打断的指令

出栈的过程也可被打断,使得随时可以响应新的中断而不再进行 现场保存

R0 - R12

R13 栈指针 SP : 指向栈顶地址

R14 链接寄存器 LR :存放返回地址

R15 程序计数器 PC :保存要执行的指令地址

示例:

老师正在讲课 (正常执行的主程序)

班主任叫我去开会 (产生一个外部中断信号)

暂停讲课并保存课堂笔记 (压栈保护现场)

根据会议室门牌号去开会 (根据中断向量表跳转到中断服务程序)

开会 (执行中断服务程序)

回到教师打开笔记继续讲课(恢复现场返回主程序继续执行)

4. 中断体系结构

注:中断和异常的区别

•异常是在正常代码序列之外引起程序流控制更改的事件。当异常发生时,当前正在执行的程序被挂起,并执行与事件相关的一段代码(异常处理程序)。事件可以是外部的,也可以是内部的。当事件来自外部源时,它通常被称为中断或中断请求(IRQ)。几乎所有现代处理器都支持异常和中断。在微控制器中,中断也可以使用片上外设或通过软件产生。

•发生异常时执行的软件代码称为异常处理程序。如果异常处理程序与中断事件关联,那么它也可以被称为中断处理程序或中断服务程序(ISR)。异常处理程序是已编译程序映像中的程序代码的一部分。

当异常处理程序完成异常处理后,它将返回被中断的程序并恢复原始任务。因此,异常处理序列需要某种方式来存储被中断程序的状态,并允许在异常处理程序完成其任务后恢复该信息。这可以通过硬件机制来实现,也可以通过硬件和软件操作的组合来实现

5. NVIC

嵌套向量中断控制器(Nested Vectored Interrupt Controller)

参考手册(905页)

NVIC主要功能(背过)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值