使用STM32CubeMX来生成带MiddleWare的FreeRTOS的代码 ,可以在STM32CubeMX中使能FreeRTOS,如下图
在以下位置配置FreeRTOS的Configure和Task内容
这样的方式比直接移植FreeRTOS要方便很多。
比如配置了两个Task,defaultTask和LEDFlashTask。
在生成的IAR工程的main.c内,就会自动加入如下的代码
/* Create the thread(s) */
/* definition and creation of defaultTask */
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
/* definition and creation of LEDFlashTask */
osThreadDef(LEDFlashTask, StartLEDFlashTask, osPriorityLow, 0, 128);
LEDFlashTaskHandle = osThreadCreate(osThread(LEDFlashTask), NULL);
/* USER CODE BEGIN RTOS_THREADS */
/* add threads, ... */
/* USER CODE END RTOS_THREADS */
/* USER CODE BEGIN RTOS_QUEUES */
/* add queues, ... */
/* USER CODE END RTOS_QUEUES */