[004]嵌入式学习:基础重点——中断系统

本文详细介绍了Cortex-M3的中断和优先级系统,包括中断处理流程、NVIC如何管理中断以及中断优先级的设定。接着,文章讨论了STM32中断和优先级,指出STM32F103系列中断向量表及优先级分组,并提供了中断优先级设置的编程示例。通过学习,读者能掌握中断优先级的设置和中断嵌套的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【本文为百问网&韦东山【物联网智能家居实战训练营】学习笔记系列】


引言

对于几乎所有的微控制器,中断都是一种常见的特性。中断一般是由硬件(如外设和外部输入引脚)产生的事件,它会引起程序流偏离正常的流程(如给外设提供服务)。当外设或硬件需要处理器的服务时,一般会出现下面的流程:

  1. 外设确认到处理器的中断请求;
  2. 处理器暂停当前执行的任务;
  3. 处理器执行外设的中断服务程序(ISR),若有必要可以选择由软件清除中断请求。
  4. 处理器继续执行之前暂停的任务。

1 Cortex-M3 的中断和优先级

正常情况下,微处理器根据代码内容,按顺序执行指令。执行过程中,如果遇到其它紧急的事件需要处理,则先暂停当前任务,执行紧急事件,待紧急事件处理完后,再恢复到刚才暂停的地方继续执行。这个产 生的紧急事件就叫做中断或异常,如图1 所示。

图1 中断或异常处理示意图

通常,把CPU内部产生的紧急事件叫做异常,比如非法指令(除零)、地址访问越界等;把来自CPU外部的片上外设产生的紧急事件叫做中断,比如GPIO引脚电平变化、定时器溢出等。异常和中断的效果基本一致,都是暂停当前任务,优先执行紧急事件,因此一般将中断和异常统称为中断。

ARM公司设计了Cortex-M3内核,这个内核就包含了中断系统框架。 Cortex-M3内核有256种异常和中断,其中编号1~15是系统异常,16~256是外部中断,如表 1 所示。

表1 Cortex-M3 中断异常表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值