FreeRTOS on ARM Processor

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

 Know your Instructor
Meet Rahul, our esteemed instructor with over 18 years of expertise spanning diverse industries. His extensive 
background includes stints in consumer electronics, process automation, automotive, medical devices, storage products,
 and more. Rahul’s wealth of experience from renowned organizations like Hyundai, Emerson, Seagate, Philips, and
 Belden enriches his teachings, offering invaluable real-world insights and practical wisdom in IoT and Embedded Systems training.
Live Weekend batch (Hindi/English)
3-4 February
Saturday 8:00 AM – 6:00 PM
  Sunday  8:00 AM – 6:00 PM
17-18 February
Saturday 8:00 AM – 6:00 PM
  Sunday  8:00 AM – 6:00 PM