最近在G070上部署Freertos,用cubemx生成的时候发现无法选择freertos所能管理的最高优先级和最低优先级,即configMAX_SYSCALL_INTERRUPT_PRIORITY和LIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY。我们可以发现在F103RCT6上是可以选择这两个优先级限制的,在生成的代码中的FreeRTOSConfig.h中也能找到对应的配置,但是g070KBT6中就无法对该值进行选择,生成的代码中也没有,我又找了几款同样是M0+内核的芯片如g070CBT6、L010和L031等,发现都无法配置该选项,推测M0+系列芯片的FreeRTOS不支持配置最高和最低优先级,位于FreeRTOS管理下的中断优先级默认为3;
注意,由于Cortex-M0+ 内核支持的中断优先级位数为 2 位,这意味着总共可以配置 4 个优先级,范围为 0 到 3。且中断优先级位数是固定的,无法通过寄存器进行更改。0 表示最高优先级,3 表示最低优先级。
F103RCT6:
G070KBT6: