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

本文详细解析了FreeRTOS中关键的中断配置参数,包括configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY和configMAX_SYSCALL_INTERRUPT_PRIORITY,解释了这些参数如何设定中断优先级以确保高优先级任务的正常运行,并说明了在不同优先级下中断服务函数调用FreeRTOS API的安全性。
摘要由CSDN通过智能技术生成
/***************************************************************************************************************/
/*                                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的优先级。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值