Realtime Operating System

Live Online (VILT) & Classroom Corporate Training Course

Learn the concepts of real-time systems and master FreeRTOS for embedded applications.

How can we help you?

  • CloudLabs
  • Projects
  • Assignments
  • 24x7 Support
  • Lifetime Access

Realtime Operating System

Overview

This course provides a comprehensive understanding of real-time operating systems (RTOS) with a focus on FreeRTOS. Participants will learn about RTOS concepts, task management, inter-task communication, and synchronization. The course also covers FreeRTOS configuration, porting to STM32, and debugging techniques. Through practical exercises, participants will develop hands-on experience in building real-time embedded applications.

Objectives

By the end of this course, leaner will be able to:

  • Understand the core concepts and characteristics of real-time operating systems

  • Create and manage FreeRTOS tasks with different priorities

  • Implement inter-task communication using queues, semaphores, and mutexes

  • Integrate FreeRTOS with STM32 microcontrollers for embedded system applications

  • Debug and troubleshoot FreeRTOS-based applications using advanced techniques

Prerequisites

  • Basic Microcontroller Programming

  • Embedded C

Course Outline

Module 1: Introduction to RTOS and FreeRTOS2025-03-23T22:24:48+05:30
  • Real-time system concepts and characteristics

  • Differences between RTOS and general-purpose operating systems

  • Types of RTOS: hard, soft, and firm

  • Task scheduling algorithms: priority-based and round-robin

  • Overview of FreeRTOS architecture and its components

  • Introduction to FreeRTOS API functions

Module 2: FreeRTOS Fundamentals and Task Management2025-03-23T22:26:13+05:30
  • Task creation and management using FreeRTOS

  • Task priorities, states, and scheduling

  • Task stack management and memory allocation

  • Task delays and periodic task management using vTaskDelay() and vTaskDelayUntil()

  • Configuring FreeRTOS using FreeRTOSConfig.h

  • Hands-on: Creating tasks with different priorities and implementing periodic tasks

Module 3: Inter-Task Communication and Synchronization2025-03-23T22:27:37+05:30
  • Using queues for message passing with xQueueCreate(), xQueueSend(), and xQueueReceive()

  • Implementing binary and counting semaphores using xSemaphoreCreateBinary() and xSemaphoreCreateCounting()

  • Understanding mutexes for resource protection using xSemaphoreCreateMutex()

  • Managing priority inversion with priority inheritance

  • Implementing event groups for task synchronization using xEventGroupCreate()

  • Hands-on: Developing producer-consumer patterns and protecting shared resources

Module 4: FreeRTOS Porting and Integration with STM322025-03-23T22:28:46+05:30
  • Understanding FreeRTOS porting process for STM32 Cortex-M4

  • Configuring tick interrupts and context switching

  • Integrating FreeRTOS with STM32 HAL libraries for peripheral management

  • Using FreeRTOS tasks to control peripherals like GPIO, UART, SPI, I2C, and ADC

  • Hands-on: Developing applications to control LEDs, read sensor data, and manage serial communication

Module 5: FreeRTOS on Linux and Debugging2025-03-23T22:30:44+05:30
  • Running FreeRTOS using the POSIX port on a Linux host

  • Simulating FreeRTOS tasks using POSIX threads

  • Debugging FreeRTOS applications using J-Link or ST-Link

  • Using GDB for debugging on Linux

  • Monitoring task states, inspecting variables, and setting breakpoints

  • Hands-on: Debugging task scheduling, synchronization issues, and interrupt handling

2025-03-23T22:37:29+05:30
Go to Top