"Barr Group training courses should be required before writing any embedded code."

General Dynamics

Sign Up Now

Receive Michael Barr's Firmware Update ® newsletter for free how-to articles and industry news by e-mail. Sign up now.

Bookmark It

Bookmark this page or share it with a colleague.

Event-Driven Programming and State Machines Course

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).


  • 2 days (hands-on)


  • Embedded software developers and managers


  • Experience writing embedded software in C or C++

Related Courses


  • 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

Demonstration Platforms

Learn More

To request pricing or dates, or for more information about this course, contact us.