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 这三个内核中断。


相关推荐
阿容12345615 小时前
stm32两轮平衡小车 -04
stm32·嵌入式硬件
silno18 小时前
图解 STM32 USB CDC虚拟串口 的实现
stm32·单片机·stm32f103c8t6·cdc虚拟串口
一枝小雨21 小时前
7 App代码转AES加密文件生成步骤
stm32·单片机·嵌入式·aes·ota·bootloader·加密升级
云山工作室1 天前
基于ZigBee的温室智能控制系统设计(论文+源码)
stm32·单片机·嵌入式硬件·物联网·课程设计
IT_阿水1 天前
基于STM32的智慧物联网系统板
stm32·物联网·perl
云山工作室1 天前
血糖浓度测试仪设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·毕设
雨疏风骤12401 天前
【FreeRTOS】任务、任务状态
开发语言·stm32·c#·rtos
Darken031 天前
基于 STM32 ——GPIO输入
stm32·单片机·嵌入式硬件·gpio
影阴1 天前
stm32 硬件i2c + hal库
stm32·单片机·嵌入式硬件
阿拉斯攀登1 天前
在STM32上使用FreeRTOS
stm32·单片机·嵌入式硬件