There are 9 tasks in the project I am working on. I defined these tasks by prioritizing them in order of importance using the “xTaskCreateStatic” function. I defined a mutex for 9 tasks using the “xSemaphoreCreateMutexStatic” function and linked all the tasks to this mutex. When my vTaskDelay value is 10ms, the tasks run in order of priority as in the image below. In a software that will be made without using RTOS, the existing tasks can be written one after the other and run in a certain order. My question is, why do we use RTOS in such a situation and how does mutex contribute to the existing system?
Another problem that stuck in my head is the way the same system switches between tasks when I set the vTaskDelay value to 1ms. Below is the image related to this situation. Since I’m new to FreeRTOS, I may have trouble with some concepts. But what is the benefit of the task transitions in 1ms as in the picture below?