FREERTOS采用滴答定时器周期性产生中断来作为心跳,作为任务切换周期,其中断处理函数如下:
extern void xPortSysTickHandler(void);
void SysTick_Handler(void)
{
/* USER CODE BEGIN SysTick_IRQn 0 */
if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)
{
xPortSysTickHandler();
}
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
xTaskGetSchedulerState()表示获取任务调度器的状态,它主要由以下三个状态:未开始,挂起,运行中。
当其已经开始后,进入xPortSysTickHandler()处理函数。该函数的主要代码有: