Wednesday, October 4 | 10:15AM-2:00PM
Embedded system complexity has reached the point where many systems require a real-time operating system (RTOS). In this hands-on workshop, attendees will become familiar with the design methodologies necessary to properly select and use a RTOS. Topics covered will include how to schedule tasks using rate monotonic analysis (RMA), properly size the stack along with when and where to use mutexes, semaphores and message queues. Important concepts such as preventing priority inversions, deadlock and thread starvation will be examined along with how to debug RTOS based applications.
• How to Select a Real-Time Operating System
• Creating and managing tasks
• Setting task priorities
• Methods and techniques for creating and using mutexes
• Methods and techniques for creating and using semaphores
• Methods and techniques for creating and using message queues
• Example uses for task synchronization services in a real-time embedded system
• Review scheduling dangers such as priority inversion, deadlock and thread starvation along with recommendations to prevent these dangerous situations
• Best practices for using an RTOS in an embedded system
• Tracing task execution using Percepio's Tracealyzer
• Recommendations for going further
Each attendee will receive a development board, lab materials and a copy of Jacob's "Developing Reusable Firmware."