FreeRTOS学习笔记——FreeRTOS系统可管理的最大优先级

/***************************************************************************************************************/
/*                                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

FreeRTOS学习笔记——FreeRTOS系统可管理的最大优先级_第1张图片

所以对于要求高的任务需设置低于5的优先级。 

你可能感兴趣的:(FreeRTOS)