Switching between multiple tasks, Part 1 [STM32 and FreeRTOS]

This is a sample program that switches between two tasks with an external switch. A dedicated task is provided to manage the switching.

The registered Task A and Task B processes have different LED blinking patterns, but the pushbutton switch input or not switches between Task A and Task B.

Execute switch task, create a dedicated task C as so called task management, and switch between task A and task B according to the input of the switch.

When I register a task, I create it with vTaskCreate().
vTaskCreate() is generated when registering tasks and specifies the task reference handler name for each task.
■ Task A handler name:xTaskHandle A
■ Task B handler name:xTaskHandle B
When creating a task with vTaskCreate(), the 6th argument is a pointer to the handle name &A and &B, respectively.

Tasks are switched using vTaskSuspend() and vTaskResume().
■ vTaskSuspend(A) TaskA inactive
■ vTaskResume(B) TaskB in running

RTOS task switching

Follow me!