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.
Overview of Firmware Architectures
We compare architectures such as bare-metal / superloop, event-driven, state machines, and multithreaded programming. Tradeoffs and limitations are discussed.
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.
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.
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.
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.
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?
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?
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.)