Course Curriculum
Introduction
What is a Realtime Operating System (RTOS)
Understanding Context Switching
Comparing RTOS with ISR and Busy Wait Systems
The Concept of a Thread
Setting Up
Downloading CubeIDE
Setting Up STM32CubeIDE
Installing Packages
Introduction to FreeRTOS
FreeRTOS naming conventions
Understanding FreeRTOS Macro Names
Coding : Configuring our System
FreeRTOS Thread Management
Overview of the TaskCreate functions
Coding : Creating Tasks
Coding : Creating Tasks from other Tasks
Coding : Working with Task functions
Coding : Understanding Task Priorities
Coding : Changing a Task Priority in Runtime
Coding : Reading the Priority of a Task
Coding : Suspending a Task
Coding : Resuming a suspended Task
Understanding Task States
Using the Blocked State to create delays
Coding : Blocking a Task
Coding : Executing Tasks Periodically
Coding : Terminating a Task
Overview of the Idle Task
Coding : Working with Idle Task
Overview of the Tick Hook
FreeRTOS Queue and Queueset Management
Understanding Queues and Queuesets
Coding : Working with Queues
Coding : Updating printf
Coding : Synchronizing Tasks with Queues
Coding : Sending more complex data with Queues
Coding : Working with Queuesets
Understanding FreeRTOS Semaphores
Understanding Semaphores
Coding : Working with Binary Semaphores
Coding : Developing some driver
Coding : Testing the drivers
Coding : Working with a Mutex
Coding : Working with Counting Semaphores
Gatekeepers
Coding : Implementing the Gatekeeper task
FreeRTOS Software Timers
Overview of Software Timers
Coding : Working with Software Timers
Coding : Stopping the Auto-Reload Timer during runtime
FreeRTOS Interrupt Management
Coding : Receiving data from the UART using Polling
Coding : Interacting with Interrupt Service Routines (ISRs)
Coding : Receiving an entire data packet
Understanding FreeRTOS EventGroups
Overview of EventGroups
Coding : Setting and Reading EventBits in an EventGroup
Coding : EventGroup with Multiple Setters
Coding :Synchronizing Tasks using EventGroups
Understanding FreeRTOS Notifications
Overview of Task Notifications
Coding : Working with Task Notifications
The FreeRTOS Scheduler
Understanding the FreeRTOS Scheduler
Coding : Scheduler Configuration