1. FreeRTOS中断管理基础概念
在嵌入式实时操作系统中,中断管理是核心功能之一。FreeRTOS作为一款轻量级RTOS,其中断处理机制设计精巧且高效。理解中断管理需要先明确几个关键概念:
硬件中断与软件中断的区别:
- 硬件中断由外设触发(如定时器、GPIO等),具有最高执行优先级
- 软件中断通过软件指令触发,优先级通常低于硬件中断
FreeRTOS管理的是硬件中断,其管理范围由两个关键配置参数决定:
c复制#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15
这两个参数定义了FreeRTOS可管理的中断优先级范围。在STM32中,中断优先级数值越小表示优先级越高,因此:
- 优先级0-4:FreeRTOS无法管理的关键中断(如系统复位)
- 优先级5-15:FreeRTOS可管理的中断
注意:不同MCU架构的中断优先级表示方式可能不同,ARM Cortex-M使用数值越小优先级越高,而某些架构可能相反。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 中断上下文与任务上下文
理解上下文切换是掌握中断管理的关键。当发生中断时,处理器会自动保存当前执行环境的上下文(包括寄存器值、程序计数器等),然后跳转到中断服务例程(ISR)执行。
上下文保存内容对比:
| 内容 | 任务上下文保存 | 中断上下文保存 |
|---|---|---|
| 通用寄存器 | ✓ | ✓ |
| 程序计数器(PC) | ✓ | ✓ |
| 状态寄存器 | ✓ | ✓ |
| 栈指针 | ✓ | ✓ |
| FPU寄存器 | 可选 | 可选 |
| 保存时机 | 任务切换时 | 中 |
