Skip to content

Embedded Systems Integration Guide

This chapter demonstrates how to integrate generated C code from itemis CREATE, formerly known as YAKINDU Statechart Tools, on your device and ends up by referring to according examples for each scenario. State machine code generated by itemis CREATE can effectively be used on embedded systems. The integration contains different parts, but can mostly be described in a generic way, as most steps of the integration are platform independent.
The differences of the integration mostly stem from the selected execution semantics – cycle based or event driven – as well as the used functionalities, such as in, out and timed events. Other best practice implementation patterns can be based on whether a bare metal microcontroller or an real-time operating system (RTOS) is used. So, there are different factors which may have an impact on the integration:

In the statechart:

  • State Machine execution
    • CycleBased
    • EventDriven
  • Used event types
    • In events
    • Time events
    • Out events

In the environment:

  • Bare-metal or RTOS
  • Usage of interrupts or polling
  • Usage of sleep modes

This guide will give an overview of the most common and well known design patterns for bare metal and RTOS based implementations in a generic way. It additionally provides examples for concrete target platforms like bare-metal Arduino, FreeRTOS, and Zephyr RTOS. It will be continuously expanded.