Embedded systems are becoming complex and even resource constrained devices are requiring a Real-Time Operating System (RTOS). In this workshop, attendees will be walked through RTOS fundamentals starting with simple bare-metal scheduling techniques through the intricacy required to design a RTOS based application. Attendees will examine practical examples and techniques that will decrease their learning curve and help them avoid the common pitfalls many developers fall into when starting to use an RTOS. This course will also leverage Percepio’s Tracealyzer to further enhance attendees RTOS application understanding. The course includes six sessions:

Session 1 – Real-time Embedded Systems Concepts
Session 2 – Real-time Operating Systems
Session 3 – Managing Tasks and Threads ( Part 1)
Session 4 – Managing Tasks and Threads ( Part 2)
Session 5 – Task Synchronization Fundamentals
Session 6 – Managing Memory

The course is taught in a convenient, hands-on style that provides developers with ample time to not just absorb the material but begin to apply it. The course is offered in several different formats that can be found below:

Real-Time Operating System (RTOS) Fundamentals

Live Online Course (Early Bird Special) – $750
Self-Paced Offline – $1000

RTOS Fundamentals and Advanced Course

Live Course Special – $1350
Self-Paced – $1750

Attendees not only get access to the course materials and recordings but will have access to materials in perpetuity including any updates. Attendees are always welcome to attend the course again to refresh or brush up on their skills at no additional cost.

Live Session Schedule:

Session 1 – January 12th, 2018 1:00 P.M. ET
Session 2 – January 26th, 2018 1:00 P.M. ET
Session 3 – February 9th, 2018 1:00 P.M. ET
Session 4 – February 23rd, 2018 1:00 P.M. ET
Session 5 – March 9th, 2018 1:00 P.M. ET
Session 6 – March 23rd, 2018 1:00 P.M. ET

For questions, please feel free to contact Jacob directly at [email protected]

Who Should Attend?

Attendees are engineers who are interested in or will be designing applications using a Real-time Operating System. The course covers the fundamentals that are rarely discussed in courses or online literature, making the course immediately applicable to the real world. The course is appropriate for engineers with little experience in the area or experienced engineers looking for new techniques and skills. Attendees should understand the fundamentals of the C programming language. Advanced concepts are reviewed as they apply.

Key Take-a-ways:

  • Hands-on experience developing RTOS based applications
  • How to develop your own real-time scheduler
  • The steps necessary to decompose an application into tasks
  • Analysis techniques for setting task priorities
  • Developing a software architecture
  • How to synchronize tasks with semaphores, mutexes and more
  • Memory management strategies for real-time systems
  • Example code and test hardware platform
  • Key concepts related to robustness and efficiency
  • Troubleshooting and debugging techniques
  • Best practices for RTOS based applications

Hardware and Software:

This course is designed to allow developers to quickly get a RTOS up and running on their own hardware no matter the vendor. The examples in this course are designed to be usable with any RTOS and platform. Developers can easily use any hardware of their choosing, however, all the examples in the course will use the following hardware and software:

  • FreeRTOS
  • ARM Cortex-M Processor
  • Atollic TrueStudio IDE w/ ARM Toochain
  • Percepio Tracealyzer

Course Overview:

Session 1 – Real-time Embedded Systems Concepts

  • Hard versus Soft  real-time
  • Bare metal scheduling techniques
  • Designing a Cooperative Scheduler
  • Best practices

Session 2 – Real-time Operating Systems

  • RTOS Characteristics
  • Baremetal versus RTOS
  • Real-time Kernels Overview
  • Preemptive scheduling
  • RTOS terminology
  • Selecting the right RTOS
  • Setting up an RTOS
  • Tools overview
  • Best Practices

Session 3 – Managing Tasks and Threads ( Part 1)

  • Introduction to tasks
  • Task versus Thread
  • Handling Critical sections
  • Reentrant functions
  • Task Control Blocks
  • Preemption and context switches
  • Creating tasks
  • Identifying and partitioning tasks
  • RTOS Application software architecture

Session 4 – Managing Tasks and Threads ( Part 2)

  • Setting task priorities using rate monotonic analysis
  • RTOS based Round Robin scheduling
  • Time slicing
  • Stack sizing and issues
    • Stack overflow detection
    • Worst case stack analysis techniques
    • Best Practices

Session 5 – Task Synchronization Fundamentals

  • Semaphores
  • Binary versus counting
  • Mutexes
  • Message Queues
  • Event Flags
  • Synchronizing from ISRs
  • Semaphores versus mutexes
  • Selecting the right synchronization
  • Recursive mutexes
  • Recursive semaphores
  • Best Practices

Session 6 – Managing Memory

  • Singly linked lists
  • Doubly linked lists
  • Dynamic versus  static memory
  • Understanding the heap and Malloc
  • Memory byte pools
  • Memory block pools
  • Memory Management Strategies
  • Best Practices

Real-Time Operating System (RTOS) Fundamentals

Live Online Course (Early Bird Special) – $750
Self-Paced Offline – $1000

RTOS Fundamentals and Advanced Course

Live Course Special – $1350
Self-Paced – $1750