Real-Time Programming for QNX OS

header-teaser, header-teaser-item-box-color-dark
Real-Time Programming for QNX OS Course

Course Overview

This course is designed for anyone who develops QNX® OS applications. By the end of the course, you will have written several example programs and learned to apply QNX OS concepts to real-world applications. You will:

  • Familiarize yourself with the features, services and architecture of the QNX OS.
  • Focus on real-world problems and the techniques for solving them.
  • Get hands-on experience applying the concepts introduced throughout the course.

Prerequisites: You must have a good working knowledge of C and a general knowledge of operating systems. Familiarity with embedded systems or real-time concepts is an asset.

Course Modules

An overview of the QNX OS architecture, covering what the microkernel and the process manager do. We talk about standards, protected address spaces, process/thread model, timing and scheduling. We also introduce various types of IPC, synchronization, what a resource manager is and where shared objects fit in.
A short introduction to editing, compiling, running and debugging your application from the QNX® Momentics® IDE.
Unlike many common legacy RTOSs, QNX OS executes programs in separate, memory-protected processes. This section touches on how a system design problem can be broken down into separate processes, and how processes are started and terminated. Additionally, we discuss what a thread is, how to start and stop a thread and how to synchronize resource access via QNX OS and POSIX function calls. Several hands-on lab exercises form a significant component of this section.
The various methods that the QNX OS provides for allowing two or more processes to exchange information and control. We focus on the QNX message passing that is fundamental to how QNX OS works. We also examine pulses and shared memory.
The relative advantages and disadvantages of the various IPC methods supported by QNX with a view to choosing which method(s) to use in your system.
An introduction to hardware access methods, including IO-mapped and memory-mapped IO, allocating DMA-safe memory, and interrupt handling.
How to meet deterministic timing requirements. We discuss timing architecture and how to handle periodic timing, one-shot timing, timestamping, benchmarking, and timeouts.
A detailed look at building boot images that contain the binaries that run just after the reset vector. Boot images typically include components such as start-up code, the process manager, the kernel, drivers ,and a start-up script. We also explore various ways to load a boot image onto your target.
Any process can be a resource manager, and drivers usually are. This section looks at the capabilities of resource managers, including pathname-space resolution, IPC message formats, and general structure. Through a set of exercises, we'll look at the initialization of a simple resource manager and the handling of read() and write() operations.

Course Schedule - (28 course hours - US$2,495)

1
1
Location
--clr-nb-sand
start
middle
1
1
Date
--clr-nb-sand
center
middle
1
1
Time
--clr-nb-sand
center
middle
1
1
--clr-nb-sand
center
middle
1
1

Online via WEBEX

(Connection details will be shared)

--clr-b-light
start
middle
1
1
October 27 – November 5, 2025
--clr-b-light
center
middle
1
1
9am – 1pm EDT/EST
--clr-b-light
center
middle
1
1
Course Completed
--clr-b-light
center
middle
1
1

Online via WEBEX

(Connection details will be shared)

--clr-b-light
start
middle
1
1
January 19 – January 28, 2026
--clr-b-light
center
middle
1
1
9am – 1pm EDT/EST
--clr-b-light
center
middle
1
1
Register
--clr-b-light
center
middle

Customize Your QNX Training Experience

This course is also available as a customized training experience tailored to your specific project needs, technical requirements, and challenges. You can also design your own course by selecting from over 30 modules. Training is available at the QNX University in Ottawa, Canada, or can be delivered at your location.