第06章 中断管理
约 210 字小于 1 分钟
2026-01-19
案例需求:
设置 FreeRTOS 能够屏蔽的的中断优先级范围:5~15。
使用两个TIM2、TIM3两个定时器每隔1s产生一个更新中断,TIM2中断优先级为4,TIM3中断优先级为6。
按下按键 SW3 屏蔽中断,按下按键 SW4 取消屏蔽中断相关宏:
configKERNEL_INTERRUPT_PRIORITY 设置PendSV/SVC的中断优先级,通常配置为最低优先级(15)。
configMAX_SYSCALL_INTERRUPT_PRIORITY 调用taskDISABLE_INTERRUPTS()会屏蔽优先级数值>=该值的中断
configMAX_API_CALL_INTERRUPT_PRIORITY 单核系统与configMAX_SYSCALL_INTERRUPT_PRIORITY相同相关函数:
taskDISABLE_INTERRUPTS(); 屏蔽优先级数值大于等于configMAX_SYSCALL_INTERRUPT_PRIORITY的中断
taskENABLE_INTERRUPTS(); 取消屏蔽中断
taskENTER_CRITICAL() 进入临界区
taskEXIT_CRITICAL() 退出临界区
taskENTER_CRITICAL_FROM_ISR() 中断服务程序中进入临界区
taskEXIT_CRITICAL_FROM_ISR() 中断服务程序中退出临界区