目录
临界段保护简介:
临界段是一段在执行的时候不能被中断的一段代码段,必须完整进行,临界段最常出现的是对全局变量的操作
Cortex-M中快速开关中断指令:
相关中断寄存器:
关中断:
FreeRTOS中,关中断的函数在portmacro.h中定义,有带返回值和不带返回值两种
带返回值的关中断可以在中断中使用,不带返回值的关中断不能在中断中使用
开中断:
与关中断类似,对应的
任务级临界段代码保护:
分别是:进入临界区,退出临界区
例:
中断级的临界段代码保护:
例:
中断管理的简介:
用户可以自定义配置系统可管理的最高中断优先级的宏定义configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY,它是用于配置内核中basepri寄存器的,当basepri寄存器设置为某个值的时候,NVIC不会响应比该优先级低的中断,例如当这个宏定义为5的时候,中断优先级数值在0,1,2,3,4的中断不能被FreeRTOS屏蔽,当FreeRTOS进入临界区的时候,仍可以被这些中断打断,这些不受FreeRTOS管理的中断同样也不能够使用FreeRTOS提供的API函数。