/***************************************************************************************************************/
/* FreeRTOS中断配置选项 */
/***************************************************************************************************************/
#ifdef __NVIC_PRIO_BITS
#define configPRIO_BITS __NVIC_PRIO_BITS
#else
#define configPRIO_BITS 4
#endif
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 //中断最低优先级
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 //系统可管理的最高中断优先级
#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY
设置FreeRTOS系统可管理的最大优先级,也就是高于5的优先级(小于5的优先级),FreeRTOS不管。
configMAX_SYSCALL_INTERRUPT_PRIORITY
此宏定义低于此优先级的中断可以安全调用FreeRTOS的API函数,高于这个优先级的中断时是禁止使用的,中断服务函数也不能调用API函数。
若有16个优先级,0为最高优先级,15为最低优先级
configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY = 5
configMAX_SYSCALL_INTERRUPT_PRIORITY = 15
所以对于要求高的任务需设置低于5的优先级。