Barr Group FacebookBarr Group TwitterBarr Group LinkedInBarr Group Vimeo

Course Overview

Course Length: 
2 Days

Once learned, the technique of event-driven programming is a fun and easy way to write reliable and maintainable embedded software. Unfortunately, most embedded programmers either haven't heard of event-driven programming or don't know how to use it properly.

This course trains programmers to architect firmware with an event focus and shows the many benefits of using state machine frameworks to implement the resulting design. You'll also learn UML's statechart notation and a variety of best practices for effective event-driven programming in C (contact us about C++ options).


The following is a summary of the major course topics and should not be considered the section-by-subsection lecture breakdown.

  • Reactive Programming
    • Events and Reactions
    • Event Queues
    • State Machines
    • Run-to-Completion
    • Active Objects
  • UML Statecharts
    • States and Transitions
    • Guard Conditions
    • Actions and Reactions
    • Entry and Exit Actions
  • Design Patterns
    • Ultimate Hook
    • Reminder
    • Deferred Event
    • Orthogonal Component
    • Transition to History
  • Frameworks
    • Inversion of Control
    • Event Delivery
    • Garbage Collection
    • Time and Power
  • Related Topics
    • Common Pitfalls
    • Preemption and Priority
    • Software Tracing
    • Debug and Test


  • Embedded software developers
  • Embedded software architects


Attendees should already be familiar with the C and/or C++ programming language before taking this course.


Each student will need a computer, such as a laptop, running XP or a newer version of Windows with an available USB port and administrator privileges. (Windows over Mac OS X generally works.)


During the course, attendees will independently complete approximately half a dozen hands-on programming exercises. These exercises are interspersed with the lectures. Attendees will use their computer to compile their programs and then download them for execution on an embedded target board with its own processor, memory, and peripherals.

Related Courses

Find out More

To find out more about our upcoming public trainings, go to our Training Calendar.

Contact Us to find out more about this course or to enquire about an on-site training at your company.

Recording Policy

All Barr Group Training Public and On-site courses may not be audiotaped, videotaped or photographed without consent from Barr Group's executive team.  Barr Group reserves the right to record portions or all of a training course for instructional purposes.  As a result, attendees present may also appear on the recording.