FreeRTOS 学习:(十七)“外部中断”和“内核中断”的差异,引入 FreeRTOS 中断管理

上一篇 下一篇
可调用 FromISR 相关 API 函数的中断优先级范围

"外部中断"和"内核中断"的差异

1)首先,简单介绍一下这两种中断:

  • 外部中断
    指由 STM32 芯片上的外设(如 USART、TIM、EXTI、ADC 等)产生的中断。这里的"外部"是相对于 CPU 内核而言,并非仅指"芯片引脚输入"。例如 USART 中断也是"外部中断"。
  • 内核中断
    指由 ARM Cortex-M 内核 自身定义的系统级异常,如 SysTick、PendSV、HardFault 等。它们是架构级的,与具体芯片无关。

2)优先级配置寄存器的区别:

  • 外部中断

    NVIC->IPR[n](每个 IRQn 对应一个字节)

  • 内核中断

    SCB->SHP[n](对应 SHPR1/2/3,共 12 字节)

3)常见内核中断列表(部分,完全对应中断向量表):

异常名 IRQn 说明
Reset -15 系统复位
NMI -14 不可屏蔽中断
HardFault -13 严重错误处理
MemManage -12 MPU 访问违规(若支持)
BusFault -11 总线访问错误
UsageFault -10 使用错误(如除零)
SVC -5 系统调用(常用于 RTOS
PendSV -2 挂起系统调用(RTOS 上下文切换)
SysTick -1 系统滴答定时器(常用作 RTOS tick)

⚠️ 注意:Reset、NMI、HardFault 优先级固定且最高,无法通过软件降低。

手册中的中断向量表,其中红色框内的是系统中断(内核中断):

FreeRTOS 主要管理的就是内核中断,SysTickPendSVSVC 这三个内核中断。


相关推荐
FakeOccupational2 小时前
【电路笔记 STM32】Cortex-M7 内核上的数据缓存结构图 + MPU内存保护单元 + Cache基本操作 + Cache&DMA 时序图
笔记·stm32·缓存
LCG元2 小时前
基于STM32CubeMX的HAL库串口通信与DMA传输深度优化
stm32·单片机·嵌入式硬件
forAllforMe3 小时前
LAN9252 从机模式寄存器的配置代码示例
stm32·单片机·嵌入式硬件
guygg884 小时前
基于STM32的贪吃蛇游戏实现(OLED屏)
stm32·嵌入式硬件·游戏
BackCatK Chen4 小时前
STM32保姆级入门教程|第4章:GPIO输入+外部中断 实现按键控制LED(手把手全流程)
stm32·单片机·外部中断·按键控制 led·stm32cubeid·gpio 输入
szxinmai主板定制专家6 小时前
基于 STM32 + FPGA 船舶电站控制器设计与实现
arm开发·人工智能·stm32·嵌入式硬件·fpga开发·架构
我不是程序猿儿6 小时前
【嵌入式】编码器计数倍频,机械一格与电气计数
stm32·单片机·嵌入式硬件·学习
_Ningye15 小时前
STM32 — 6.1 TIM定时中断
stm32·单片机·嵌入式硬件
非鱼䲆鱻䲜17 小时前
vscode开发stm32添加新的头文件路径和包含源文件
ide·vscode·stm32·cmake·包含头文件·包含源文件
没有医保李先生18 小时前
esp32和stm32的工程宏定义
stm32·单片机·嵌入式硬件