Standard Training Courses
Prerequisites
You must have a good working knowledge of C.
Objectives
This course is designed for QNX® RTOS v4 programmers who want to migrate their applications to the QNX Neutrino® RTOS. By the end of the course, you will have learned the differences between the RTOSs and be prepared to take different approaches to migration.
The course has three main goals:
- Familiarize the developer with the methods for migrating applications from the QNX RTOS v4 to the QNX Neutrino RTOS.
- Focus on real-world problems and the techniques for solving them.
- Provide hands-on exercises so the developer can apply the concepts introduced in the course.
Topics
The course consists of the following sections:
-
Introduction
An overview of the differences between the QNX Neutrino RTOS and the QNX RTOS v4, including a discussion of OS architecture, shared objects, and replacements for Fsys, Net, and Dev. We'll see what IPL and startup code refer to and introduce several entirely new features. -
Development environment
We'll cover the various ways to develop QNX Neutrino RTOS applications, including compiling, linking, and debugging. We'll also discuss the significant changes to making bootable images. -
Migrating
In this section, we'll examine the main concepts for migrating from the QNX RTOS v4 to the QNX Neutrino RTOS, beginning with a discussion on methodology. We'll look at connectivity between the two OSs. The migration toolkit will also be covered, including the mig4nto utility and the migration library. -
Interprocess communication
We'll examine key differences between the QNX RTOS v4 and the QNX Neutrino RTOS in the critical area of IPC. Topics covered include send/receive/reply, proxies versus pulses, what's new in signals and semaphores, minor changes in shared memory and POSIX message queues. As an exercise, you will migrate a small application involving some of these mechanisms. -
Timing
We'll cover the minor changes to timing features. -
Interrupts
Interrupt handling has become even simpler in the QNX Neutrino RTOS. The differences will be covered here as well as some new enhancements. -
I/O managers versus resource managers
I/O managers require the most changes, to the point where some may need to be rewritten. We'll introduce techniques for writing resource managers, and for a hands-on exercise, you'll write one. -
I/O changes
We'll cover the very minor changes that exist in the port I/O functions and the way in which memory mapping is done. - Hands-on exercises
Throughout the course, you will have the opportunity to put what you learn into practice. After learning each programming technique, you will apply it to situations that may arise in your own applications. Diskettes with solutions to the problems covered in class will be distributed at the end of the course, and blank diskettes will also be provided to let you take your work home.