This course is available Live Online worldwide: View the Live Online full course description »
Real-Time Operating Systems (RTOSes) are operating systems developed for embedded microprocessors or controllers. These systems have the ability to immediately respond in a predetermined and predictable way to external events, so they must meet strict deadline constraints and handle different aspects of the application successfully.
A key feature of an RTOS is ensuring that most urgent operations are taken care of by assigning higher priorities. Real-Time systems also focus on the communication and synchronization between different tasks to achieve the objective of the application.
This course is based on FreeRTOS, the de facto and freely available standard RTOS for microcontrollers. Attendees will gain the knowledge and skills needed to develop and maintain applications running in a Real-Time environment.
Workshops comprise approximately 50% of class time and are based around carefully designed Labs to reinforce and challenge the extent of learning.
The course is provided in partnership with embedded experts AC6.
This course is designed for anyone interested in, or tasked with, the development of a resource constrained Real-Time system. For example, software engineers, field engineers and (project) managers.
An ST STM32F4 (Cortex/M4) with System Workbench IDE
Printed course materials are provided to each delegate.
This course is provided in partnership with embedded experts AC6.
DAY 1
Cortex-M resources used by RTOS
Lab: Interrupt Management on Cortex-M4
Element of a Real-Time system
Lab: Analyse a Context Switch
DAY 2
Task Management
Lab: Managing tasks
Resource Management
Lab: Implement mutual exclusion between tasks
Synchronization Primitives
Lab: Synchronizing a task with another one through binary semaphores
Lab: Synchronizing a task with another one through queues
DAY 3
Parallelism Problems Solution
Lab: The producer-consumer problem, illustrating (and avoiding) concurrent access problems
Lab: The philosopher’s dinner problem, illustrating (and avoiding) deadlock, livelock and starvation
Interrupt Management
Lab: Synchronize Interrupts with tasks
Software Timer
Lab: Implement Soft Timers
FreeRTOS-MPU
Lab: Implement protected memory regions
OPTIONAL ADDITIONAL TOPICS
Data structures
Lab: Build a general purpose linked list
Memory Management
Lab: Write a simple, thread safe, buddy system memory manager
Lab: Write a generic, multi-level, memory manager
Lab: Enhance the memory manager for memory error detection
Trouble Shooting
Complete an enquiry form and a Doulos representative will get back to you.
Enquiry FormPrice on request