COURSE OVERVIEW
This course introduces the principles shared by many real-time operating
systems, and their use in the development of embedded multitasking application
software.
The course begins with the fundamental elements of real-time multitasking
embedded application software design and development. Processor and
operating system concepts relevant to multitasking systems are examined, with
focus on preemptive task scheduling, intertask communication and
synchronization.
The course continues with a detailed survey of popular operating system kernel
services, giving many application examples. Topics include timer services,
dynamic memory allocation schemes, network communication programming
interfaces and device driver supervisors. Multitasking code development is
discussed and example programs are reviewed and debugged. Practical
experience is gained during student work exercises.
The faculty for this course has extensive experience with a number of major realtime
operating systems (RTOSs), including VRTX, pSOS, VxWorks, OSEK /
VDX, Nucleus, OSE, μC/OS and others *. Instructors can provide in-depth
insight into the specific workings of these RTOSs during the course, if it is of
particular interest.
WHO SHOULD ATTEND ?
This course is intended for practicing embedded systems software development
engineers, software system architects, project managers and technical
consultants who are responsible for designing and implementing the
software for real-time and embedded computer systems.
Course participants are expected to be knowledgeable in the C programming
language.
This is a course for engineers in industry with less than 3 years of experience
with real-time operating systems
COURSE OBJECTIVES
The primary goal of this course is to give the participant the skills necessary to
develop software for embedded computer systems using a real-time operating
system. This is a very practical, results-oriented course that will provide
knowledge and skills that can be applied immediately.
COURSE CONTENTS
RTOS Basics - Multitasking
Embedded / Real-Time Systems: Definitions and Issues
Application Software: Tasks and Priority-Based Preemptive Scheduling
Criteria for Decomposition into Tasks
Exercise: Multitasking
Correctness Issues for Embedded / Real-Time Software
RTOS Basics - Communicating between Tasks
Intertask Communication and Synchronization Overview
Messages and Message Queues
Exercise: Intertask Communication via Message Queues
Semaphores: Binary and Counting Semaphores
Exercise: Intertask Synchronization via Semaphore
Dynamic Memory Allocation: Fragmentation Issues
Additional RTOS Kernel Topics
RTOS Timers: Relative and Absolute Timing
Priority Inversion
Mutexes: Priority Inheritance and Priority Ceiling
Exercise: Priority Inversion
Asynchronous Signals
Exercise: Intertask Communication Mechanisms
RTOS Topics Beyond the Kernel
Network Communication Programming: Sockets Interface
Device I/O Supervisor
Application Software: Device Drivers
Application Software: Interrupt Service Routines
Exercise: Interrupt Service Routines
Operating System Configuration
Development Environment: Classes of Debuggers |