简介
临界段指的是在程序运行过程中,禁止被打断运行的代码。
比如:在使用模拟I2C 时,操作IO口可能需要几十个us,这段时间必须是严格的时序。
若在此期间,被其他原因(如中断)打断,那后果可想而知。
所以,这种禁止被打断的代码段,叫做临界段,
那临界段代码保护函数,指的就是可以保护此段代码不被打断的函数
函数
taskENTER_CRITICAL()
taskEXIT_CRITICAL()
上面两个是在rtos创建的任务中使用的代码,
taskENTER_CRITICAL_FROM_ISR()
taskEXIT_CRITICAL_FROM_ISR()
上面两个是在中断函数中使用的代码
例子
/* USER CODE END Header_blink02 */
void blink02(void const * argument)
{
/* USER CODE BEGIN blink02 */
/* Infinite loop */
for(;;)
{
taskENTER_CRITICAL();
......
taskEXIT_CRITICAL();
}
/* USER CODE END blink02 */
}