
Explore how a task suspends itself in an Arduino FreeRTOS project, using a suspend monitor and task handle changes, and observe the red, blue, and yellow task prints.
Discover how to suspend and resume a FreeRTOS task in Arduino using suspend and resume monitors, a suspended flag, and vTaskResume to coordinate a blue task with a yellow task.
Learn how to block tasks using the vTaskDelay API, convert milliseconds to ticks with pdMS_to_ticks, and implement real-time led blink patterns in a three-task FreeRTOS project.
Learn how to create and manage queues in FreeRTOS for Arduino, using queue handles, xQueueCreate, and data transfer with xQueueSend, xQueueSendToBack, xQueueSendToFront, and xQueueReceive, including blocking times.
Explore creating and using a simple queue in Arduino FreeRTOS, with a sender and receiver task exchanging a 32-bit value via xQueueSend and xQueueReceive, shown on serial output.
Learn how to create a simple binary semaphore with FreeRTOS, define a semaphore handle, create a binary semaphore, and implement three LED controller tasks with serial output.
Explore how binary semaphores coordinate concurrent tasks in Arduino FreeRTOS by using xSemaphoreTake and xSemaphoreGive to serialize serial monitor access and prevent deadlock and collisions.
This course teaches you the foundations of real-time systems and how to build real-time applications using FreeRTOS on Arduino boards. The course gives a detailed overview of the characteristics of the FreeRTOS real-time kernel, provides a detailed tutorial on the APIs required to implement the various features of FreeRTOS on Arduino and then goes on to build about 30 real-time projects .
This course does not assume prior knowledge of real-time systems and application programming. By the end of this course you should be able to build your own multitask FreeRTOS real-time applications which use all the features of a modern real-time application (features such as semaphores, mutex, event flags, hooks, queues, mailboxes etc )and then test the performance of these features .You should also be able to : Calculate the CPU Utilization of an RTOS, Understand Rate Monotonic Schedulers,port FreeRTOS to any Arduino board,Understand Round-Robin Schedulers,Understand Weighted-Round-Robin Schedulers, Understand First Come First Served Schedulers, Implement and explain popular scheduling algorithms and so much more. Please take a look at the full course curriculum.