freertos 配置 systick 的中断优先级
时间: 2023-10-24 20:08:03 浏览: 92
对于 FreeRTOS,配置 SysTick 的中断优先级需要遵循以下步骤:
1. 确保在 FreeRTOSConfig.h 文件中定义了 configLIBRARY_LOWEST_INTERRUPT_PRIORITY 宏。该宏定义了 FreeRTOS 库支持的最低中断优先级。
2. 在系统初始化的地方(例如 main 函数),将 SysTick 中断优先级设置为较高的值。这可以通过设置 SysTick_Config 函数的第三个参数实现。
```c
NVIC_SetPriority(SysTick_IRQn, configLIBRARY_LOWEST_INTERRUPT_PRIORITY - 1);
```
这将为 SysTick 中断分配一个比最低中断优先级更高的优先级。请确保 configLIBRARY_LOWEST_INTERRUPT_PRIORITY 的值大于 0。
3. 配置 SysTick 的中断周期,并启动 SysTick 定时器。
```c
SysTick_Config(SystemCoreClock / configTICK_RATE_HZ);
```
其中,configTICK_RATE_HZ 定义了 FreeRTOS 的时钟频率。
通过以上步骤,你可以为 SysTick 中断分配一个较高的优先级,以确保 FreeRTOS 的调度器可以正常工作。请注意,这只适用于 Cortex-M 架构的微控制器,因为 SysTick 是 Cortex-M 架构的一部分。如果你使用的是其他架构,请参考相应的文档来配置中断优先级。