STM32学习笔记之系统异常和中断(原理篇)

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.youkuaiyun.com/weixin_51244852
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处

文章目录


Cortex - M4 的异常主要分为系统异常和外部中断。系统异常一般是由处理器内部的事件触发的,像复位、不可屏蔽中断等;外部中断则是由外部设备发出的中断请求触发的。对 Cortex - M 系列支持的中断类型进行分类和概括:

类别中断类型英文名称触发条件作用优先级特点
系统异常复位Reset系统上电、复位引脚触发或看门狗复位等情况是系统启动的起点,初始化系统状态,如设置堆栈指针、初始化向量表、初始化时钟等,让系统进入初始运行状态优先级最高,系统复位时无条件执行
不可屏蔽中断NMI(Non - Maskable Interrupt)通常由硬件故障(如硬件检测到电源即将掉电)、外部关键信号触发处理极其重要且紧急的事件,不能被软件屏蔽,确保关键事件能及时处理优先级仅次于复位异常,在系统运行时一旦触发会立即响应
硬故障HardFault内存访问错误(如访问未映射的内存地址)、总线错误(如数据传输错误)、执行非法指令(如执行未定义的操作码)等表示系统出现了严重且无法由其他异常处理机制解决的问题,需要开发者重点排查优先级较高,仅次于NMI,会打断正常程序执行
存储器管理故障MemoryManagementFault访问未定义的内存区域、违反内存访问权限(如对只读内存进行写操作)检测和处理与存储器访问相关的错误,保障系统内存的安全和正确使用优先级在系统异常中处于中等水平,用于保护内存访问的合法性
总线故障BusFault数据传输过程中出现总线错误,如数据传输超时、总线冲突、地址错误等及时发现和处理总线通信方面的问题,保证系统数据传输的稳定性优先级与存储器管理故障类似,确保总线通信正常
使用错误UsageFault执行不合法的指令(如未对齐的内存访问)、违反处理器的使用规则(如除零错误)检测指令执行的合法性,避免程序因非法操作导致不可预期的结果优先级和总线故障相近,保证指令执行的正确性
系统服务调用SVCall(System Service Call)软件执行特定的SVCall指令触发用于用户程序请求操作系统提供的服务,如任务切换、资源分配、设备驱动调用等优先级相对较低,可由软件控制触发时机
调试监控DebugMonitor调试模式下,处理器进入调试状态,如执行调试断点指令方便调试器对系统进行监控和调试,开发者可借此排查程序运行问题优先级可配置,一般在调试时按需响应
可挂起的系统服务PendSV(Pendable System Service)根据系统调度需求,通常用于操作系统任务切换时标记用于实现系统任务的上下文切换,可在合适的时机进行任务切换,避免影响关键任务的执行优先级较低,可被其他高优先级异常打断,适合在系统不太繁忙时进行任务切换操作
系统滴答定时器中断SysTick系统滴答定时器(SysTick)溢出为操作系统提供时间片调度、延时等功能的时间基准,实现系统的定时功能优先级可配置,常用于操作系统的时间管理
外部中断外部中断线EXTI(External Interrupt)外部引脚电平变化(上升沿、下降沿或电平变化)处理外部设备中断请求,如按键检测、传感器数据采集等优先级可通过NVIC(嵌套向量中断控制器)进行灵活配置,以适应不同的外部设备响应需求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

望闻问嵌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值