FreeRTOS and UML

saiberion wrote on Wednesday, July 23, 2008:

I’m just a bit curious.
I were at a trial course for embedded UML (Rhapsody from Telelogic) recently and it might be interesting for me. However neither GNU compiler nor FreeRTOS are supported by their IDE yet. After talking to some responsible people I found out that they would like to support FreeRTOS as an alternative to their own real time scheduler but haven’t gotten into it. Regarding GNU compiler they did not really want to do that.
There would be a consensus splitting the work of implementing the compiler and FreeRTOS where I would do the compiler implementation and they would do FreeRTOS.

It’s not someting written in stone yet or in the near future but beforehand I wanted to know how the interest towards UML and FreeRTOS is.
Is someone already using UML for embedded development?
Is someone planning to use UML?


rtel wrote on Wednesday, July 23, 2008:

What is the relationship between the UML tool and the RTOS?  Is it that the UML tool generates code for designs described in UML to execute ontop of the RTOS and therefore needs to know the API’s etc?

In any case I would be very interested in progressing any friendly UML tools.  You can contact me directly on r (dot) barry [at]


saiberion wrote on Thursday, July 24, 2008:

Yes this UML tool would generate code and FreeRTOS could be the managing scheduler for events and parallel working code.

johughes2002 wrote on Monday, July 28, 2008:

I worked for Telelogic at their office in Germany for a practicum a couple of years ago, just before they purchased Rhapsody. The other UML tool that they have is called TAU and was developed in-house. One of the things I worked on was to increase the number of supported embedded targets you could run UML state machines on. Basically the UML tool would generate a bunch of c code which would run the model. Porting was simply a matter of providing the generators with macros to hook into the system calls needed from the target. I did ports to LegOS and OpenOSEK. I can’t see the process being much different for Rhapsody, although I admittedly have never seen the way Rhapsody generates its code.

quantum-leaps wrote on Monday, July 28, 2008:

The QP family of ultra-light, open source, UML state machine frameworks has been just recently ported to The open source QP should fit very well the lightweight, open-source nature of

QP is not a traditional UML tool. Rather, QP is a lightweight framework, similar to the Rhapsody’s OXF (Object Execution Framework) or the IDF (Interrupt Driven Framework), except QP is designed for manual coding. With QP, coding of modern UML state machines (UML statecharts) directly in C or C++ is a non-issue and no big design automation tools are needed.

QP consists of a universal UML-compliant event processor (QEP), a portable event-driven framework (QF), and a portability layer for an RTOS/Kernel of your choice. QP also provides a cooperative as well as a fully preemptive kernel (QK). Current versions of QP include: QP/C and QP/C++, which require about 4KB of code and a few hundred bytes of RAM, and the ultra-lightweight QP-nano, which requires only 1-2KB of code and just several bytes of RAM. QP is described in great detail in the book “Practical UML Statecharts in C/C++, Second Edition”, (Newnes, 2008).

The QP port to FreeRTOS is available for download from The QP port has been tested on the STR912-SK (ARM9) board with the IAR compiler. The QP port comes with a detailed manual in PDF available at

Please visit for more details about QP.

Miro Samek

kenfarr wrote on Tuesday, July 29, 2008:

I just worked on a project that used Quantum Leap’s framwork on a different OS (IPOS).  The learning curve was a little steep, much like learning a new language but a little easier.  After that it was a very clean way to design state machines.  I’m glad I read this here since it might be a nice thing to add to my list of portable tools.