Consultancy and Total Solutions Training Provider for Embedded Systems, Electronics and Electrical Engineering, Programming, Computing, Operations, ISO9000, ISO14000 and Management.

Bridging the Gap

Training Courses

Embedded Systems Development with RTX RTOS

Course id: 0067


Developing embedded applications is traditionally fraught with reliability, responsiveness and lockup issues particularly due to the need to be coded in specific ways to mimic concurrency and multitasking. To refocus embedded development on the functionality of the system, a lightweight, real-time operating system (RTOS) should be used instead.

This course introduces the fundamentals of RTOS and concentrates on the paradigm needed to effectively solve real-world problems with RTOS. The course focuses on the RTX RTOS from Keil.

Course highlights
Participants would be using the popular RTX real-time operating system from Keil for this course.

What you will learn

This course concentrates on the theoretical and practical knowledge to allow participants to achieve the following learning outcomes. Upon completing the course, participants would be able to:
  • Understand the concept of real-time, task, multitasking, scheduling and context switching
  • Design programs based on a collection of tasks executing pseudo-concurrently
  • Use queues, semaphores and mutaxes for inter-task communication
  • Implement proper resource sharing methods to prevent task deadlocks and priority inversions
  • Respond and handle interrupts in a timely manner

Who should attend

This course is suitable for firmware engineers who are about to embark on RTOS-based projects.


Participants are required to have a working knowledge of C. Experience in embedded C would be beneficial, though not essential.

Course methodology

This course is presented in a workshop style with example-led lectures interlaced with hands-on practical for maximum understanding.

Course duration

3 days.

Course structure

  • Overview of Real-Time Operating System (RTOS)
    • What is a real-time operating system?
    • When to use an OS
    • Overview of Keil RTX
  • Tasks
    • What are tasks?
    • States and transitions
    • Hard versus soft deadlines
    • Hands-on practical: Hello RTX World
  • Scheduler tools
    • Keil's RTX support
    • Watching system, tasks and events
    • Hands-on practical: RTX with Keil
  • Multi tasking
    • Context switching
    • Co-operative and pre-emptive multitasking
    • Hands-on practical: Multitasking Techniques
  • Task scheduling
    • Round-robin versus earliest deadline first scheduling
    • Task determinism
    • Hands-on practical: Tasks Determinism
    • Dynamic priority
    • Priority inversion and solution
    • Hands-on practical: Dynamic Priority
  • Interrupt
    • Configuring interrupts
    • Handling interrupts
    • Hands-on practical: Interrupt Handling
  • Inter-task communication
    • Using event flags for task synchronisation
    • Hands-on practical: Event Flags
    • Using mailboxes for data interchange
    • Hands-on practical: Inter-task Communication with Mailboxes
    • Counting and binary semaphores
    • Hands-on practical: Using Semaphores
  • Resource sharing
    • Mutaxes versus binary semaphores
    • Using mutexes to lock/release resource
    • Hands-on practical: Sharing Resources
  • Memory management
    • Memory allocation and deallocation
    • Hands-on practical: Memory Management


Dr Royan Ong

Course Schedule





News on ProvenPac

  ProvenPac Sdn. Bhd.
  C-4-3 Gembira Park,
  Jalan Riang, 58200
  Kuala Lumpur, Malaysia

  Tel: +603 03 5889 5889

No public course
currently scheduled.


Please inform me when
this course is scheduled.


Please contact me to
arrange in-house training.