STM32CubeMX学习笔记——FreeRTOS临界段保护

简介

临界段指的是在程序运行过程中,禁止被打断运行的代码。
比如:在使用模拟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 */
}

你可能感兴趣的:(STM32CubeMX学习笔记——FreeRTOS临界段保护)