CEC – From Baremetal to RTOS

Course Overview:

Embedded systems have been developed without using a real-time operating system for decades. These systems have used bare-metal scheduling techniques that have proven sufficient in many systems. As devices become more connected, complicated and feature rich, bare-metal techniques are no longer the optimal solution for developing a real-time embedded system. In this course, we’ll walk developers through the transition from bare-metal software through effectively using Real-time Operating Systems (RTOS).

CECDay 1 – Reviewing Bare-metal Scheduling Techniques

Bare-metal scheduling techniques can go a long way in ensuring real-time behavior. In this session, Jacob will review techniques such as round robin, round robin with interrupts and then walk attendees through how to develop their own bare-metal scheduler. Attendees will walk away with an understanding for how far bare-metal can go and when an RTOS might be the best scheduling solution.

Registration and Playback located here (May require login to access)

Day 2 – Getting Started using Real-Time Operating Systems

RTOSes provide developers with the ability to create semi-independent programs that run concurrently on the microcontroller. Properly creating tasks and setting their priorities can often be challenging. In this session, Jacob will walk attendees through how to setup a real-time operating system, create tasks and properly select their priorities. Attendees will walk away with an improved knowledge on how to use an RTOS and schedule tasks using rate monotonic scheduling.

Registration and Playback located here (May require login to access)

Day 3 – Real-Time Operating System Concepts

Real-time operating systems are just about tasks. Developers need to understand how to synchronize task execution using semaphores, mutexes and event flags. Communication between different tasks requires message queues. These objects require special consideration especially since improper use can result in issues such as dead-lock or priority inversion. Attendees will walk away with the knowledge of how to properly synchronize tasks and manage RTOS memory.

Registration and Playback located here (May require login to access)

Day 4 – Debugging Real-Time Embedded Systems

There is no such thing as a bug-free embedded system. Developers using RTOSes can be especially susceptible to really nasty bugs. In this session, Jacob walks developers through techniques to find application issues such as priority inversions, thread starvation, dead-lock and stack overflow. Attendees will walk away with the tools necessary to prevent bugs in their system and quickly discover the ones that find their way into the system.

Registration and Playback located here (May require login to access)

Day 5 – RTOS Best Practices

Developing an RTOS based application is not trivial. Improper use of various resources and RTOS tools can result in memory fragmentation, synchronization issues, out-of-memory warnings, stack overflow and all kinds of really cool issues. In this session, Jacob discusses general RTOS best practices that are designed to help developers optimize their software for performance and memory usage.

Registration and Playback located here (May require login to access)

Course Resourses

  • Sign-Up for the Embedded Bytes Newsletter here
  • Embedded Software Design Techniques – An API Standard for MCU’s here
  • Doxygen C Templates Download can be here
  • DesignNews Blog Articles can be found here
  • Jacob’s YouTube Channel – here

Course Source Code Download

Course materials can be found on the Insights page located here.

Leave a Reply

Your email address will not be published. Required fields are marked *