Testimonial

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

General Dynamics

Glossary

Find definitions for technical terms in our Embedded Systems Glossary.

A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
Z Symbols

Test Your Skills

How good are your embedded programming skills? Test yourself in the Embedded C Quiz or the Embedded C++ Quiz.

Test Your Skills

Newsletter Signup

Want to receive free how-to articles and industry news as well as announcements of free webinars and other training courses by e-mail? Signup now.

Event-Driven Programming and State Machines

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

Length/Options

  • 2 days (hands-on)

Audience

  • Embedded software developers and managers

Prerequisites

  • Experience writing embedded software in C or C++

Related Courses

Outline

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