RT-Thread里systick中断和pendSVC优先级在那个源文件里配置,描述具体代码
时间: 2023-03-15 19:11:53 浏览: 121
systick中断和pendSVC优先级可以在RT-Thread/bsp/<平台名>/startup/startup_<处理器>.s文件中配置,具体代码如下:msr basepri, #<优先级> ; 设置pendSVC优先级
msr msp, r0 ; 设置栈顶地址
cpsie i ; 使能中断
cpsie f ; 使能浮点
svc 0 ; 调用软中断
相关问题
rtthread里systick优先级在哪里设置的,描述具体代码
在 rt-thread 中,可以通过以下代码设置 systick 的优先级:NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0, 0));
freertos 配置 systick 的中断优先级
对于 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 架构的一部分。如果你使用的是其他架构,请参考相应的文档来配置中断优先级。
阅读全文