![](https://embetron-academy.com/wp-content/uploads/2024/01/FreeRTOS-on-ARM-Processor.webp)
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
![](https://embetron-academy.com/wp-content/uploads/2023/07/Rahul_Profile.jpg)