FreeRTOS中断配置宏
宏 | 描述 |
---|---|
configPRIO_BITS |
设置MCU使用几位优先级,在STM32中使用4位 |
configLIBRARY_LOWEST_INTERRUPT_PRIORITY |
设置最低优先级 |
configKERNEL_INTERRUPT_PRIORITY |
设置内核中断优先级 |
configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY |
设置FreeRTOS系统可管理的最大优先级 |
configMAX_SYSCALL_INTERRUPT_PRIORITY |
见下方 |
configMAX_SYSCALL_INTERRUPT_PRIORITY
是宏configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY
左移4位而来的,此宏设置好之后,低于此优先级的中断可以安全的调用FreeRTOS的API函数,高于此优先级的中断FreeRTOS是不能禁止的,中断服务函数也不能调用FreeRTOS的API函数。
以STM32为例,有16个优先级,0为最高优先级,15为最低优先级,配置如下:
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 5
#define configKERNEL_INTERRUPT_PRIORITY 15
FreeRTOS开关中断
FreeRTOS开关中断函数为portENABLE_INTERRUPTS()
和portDISABLE_INTERRUPTS()
,这两个函数实际上都是宏,
在portmacro.h中&#x