1、FreeRTOS开关中断函数分别为portENABLE_INTERRUPTS()和portDISABLE_INTERRUPTS();
2、FreeRTOS临界段保护相关函数:taskENTER_CRITICAL()、taskEXIT_CRITICAL()、taskENTER_CRITICAL_FROM_ISR()、taskEXIT_CRITICAL_FROM_ISR();
3、taskENTER_CRITICAL()<-宏-portENTER_CRITICAL()<-宏-vPortEnterCritical()<--portDISABLE_INTERRUPTS()<-宏-vPortRaiseBASEPRI()<--汇编代码,将configMAX_SYSCALL_INTERRUPT_PRIORITY写入BASEPRI寄存器;
4、taskEXIT_CRITICAL()<-宏-portEXIT_CRITICAL()<-宏-vPortExitCritical()<--portENABLE_INTERRUPTS()<-宏-vPortSetBASEPRI( 0 )<--汇编代码,往BASEPRI寄存器写0;
5、taskENTER_CRITICAL_FROM_ISR()<-宏-portSET_INTERRUPT_MASK_FROM_ISR()<-宏-ulPortRaiseBASEPRI()<--汇编代码,将configMAX_SYSCALL_INTERRUPT_PRIORITY写入BASEPRI寄存器,但与vPortRaiseBASEPRI()稍有不同,在往BASEPRI写configMAX_SYSCALL_INTERRUPT_PRIORITY前读出了BASEPRI值,函数退出时返回BASEPRI,供退出临界段时taskEXIT_CRITICAL_FROM_ISR()做参数使用;
6、taskEXIT_CRITICAL_FROM_ISR(x)<-宏-portCLEAR_INTERRUPT_MASK_FROM_ISR( x )<-宏-vPortSetBASEPRI(x)<--汇编代码,往BASEPRI寄存器写x。