Computer screen data analysis
Back to Technical TrainingTechnical Training Course

RTOS Boot Camp™

Overview

Ontera's RTOS Boot Camp™, taught since 2008, is an intensive 5-day hands-on training course that equips your team with the skills and confidence to use an RTOS effectively, safely and securely.

Many RTOS courses are copy & paste from vendor documentation and YouTube videos, punctuated with an occasional "fill in the blank" exercise where the student fills in an API call in the right location. Often these courses are taught remotely with simulated hardware, and the student doesn't internalize and absorb the course material effectively.

Ontera's courses are taught on-site on real target hardware. Students build, download and debug on an Arm Cortex M33 target processor, and they keep all course materials and the development board so that they can always revisit topics and labs.

The comprehensive RTOS Boot Camp™ will help your students master both the fundamentals of RTOS usage as well as understand the tips and techniques that result in secure, responsive, power-efficient systems that meet their real-time deadlines.

Who This Course Is For

This course is suitable for embedded engineers who are comfortable writing C or C++ code. Students typically have roles such as firmware engineer, systems engineer, and test engineer.

Students require no prior experience with real-time operating systems. Even experienced engineers will learn important topics that can be applied to building robust, deterministic embedded systems with timing and power constraints.

OS-Agnostic, MCU agnostic

The QP framework runs on a wide selection of microcontrollers and processors, and can run on top of an OS (such as Zephyr, ThreadX, FreeRTOS or even Linux) or with no OS at all ("bare metal").

Course Curriculum

Detailed course curriculum can be provided upon request.

Event-driven programming diagram illustration

Overview of Firmware Architectures

We compare architectures such as bare-metal / superloop, event-driven, state machines, and multithreaded programming. Tradeoffs and limitations are discussed.

Event-driven programming diagram illustration

Multitasking Fundamentals

We de-mystify the idea of an RTOS. Topics include embedded kernels, scheduling and priority-based preemption, blocking, synchronization, scheduling points and context switching.

Event-driven programming diagram illustration

Threads & Application Design

An RTOS application is essentially a federation of independent yet cooperating threads (or tasks), plus one or more interrupt service routines. We explain how to decompose an application's requirements into a set of threads, principles of task design, task priority assignment, how interrupts and threads communicate & coordinate, plus the role of the idle tasks and hook functions.

Event-driven programming diagram illustration

Timing

Almost every application needs to time things and ensure timeliness for real-time responsiveness. We cover RTOS software timers, real-time deadlines, use of hardware timers and low-power operation and ultra-low-power techniques.

Event-driven programming diagram illustration

RTOS Primitives ("APIs")

Fundamentally, RTOSes are similar. They allow the designer to create and run one or more threads that communicate with each other to accomplish the application's requirements. RTOS APIs are similar but not identical. Most provide a common set of services such as mutexes, semaphores, events/flags and message queues. We discuss these aspects, and illustrate how at their core, most RTOSes are not very different from each other.

Event-driven programming diagram illustration

Systems Engineering

This section discusses the issues that can make or break your system. Are you meeting your timing deadlines? How do you know? Can you reduce your power consumption even further? How do you debug a multi-threaded program with "many things going on at the same time"? Are your tasks well-designed, encapsulated, and reusable? Is your application code tightly coupled to a single RTOS?

Event-driven programming diagram illustration

Real-Time design

This is a deep-dive into the art and science of real-time systems design. Can you mathematically prove, on paper before any code is written, that your system will meet its deadlines under all circumstances? Have you prioritized your threads correctly? What are the requirements for designing a system with hard real-time deadlines?

Event-driven programming diagram illustration

Safety and Security

It all comes down to this. Sure, your system may be responsive and reliable, but is it safe? How does it behave in the presence of an unforeseen malfunction? Even worse, how does it react to a highly technical attack by a skilled adversary? What are the vulnerabilities and countermeasures? What hardware and software can you employ to harden your system?

Our Instructors

Our courses are taught by experts who have written real-time kernels, designed mission-critical systems, testified in U.S. federal court, and reverse-engineered proprietary kernels from object code. Throughout each course, topics are connected to real life examples pulled directly from the instructors' experience.

Our instructors have taught teams at every major silicon vendor, more than a dozen medical device companies, and numerous firms working in defense / aerospace, transportation, industrial control, instrumentation, robotics and energy.

Get in touch for full details on syllabus, pricing and training dates.

Contact Us About This Course

(Note: this course is only taught privately on-site at customer location; no public or online trainings are offered.)