Without using QP, I don't believe we could have delivered on our given schedule dates with the same level of quality."
Jeff Karau, Sr. Software Engineer, General Dynamics C4 Systems
Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems (PSiCC2) is the most popular book about UML statecharts and event-driven programming for embedded systems. This ultimate resource describes all the related concepts and provides a very detailed design study of the QP™ frameworks.
companion page to PSiCC2
Without using QP, I don't believe we could have delivered on our given schedule dates with the same level of quality."
Jeff Karau, Sr. Software Engineer, General Dynamics C4 Systems
...After trying out a couple of CASE tools we came to the conclusion that expensive round-trip-engineering UML tools were cumbersome and did not fit our way of working. However, the innovative QP way to map UML state machines to C/C++ code was exactly what we were looking for..."
Henrik Bohre, Embedded Systems Consultant, GotCom AB, Göteborg, Sweden
I'm speaking from first-hand experience when I say this is really good stuff. I just hope others will recognize that and we can get past the old main+ISR vs. RTOS dilemma for a large variety of applications."
Michael Barr, President Netrino and former editor-in-chief of the ESP magazine
Practical Statecharts in C/C++ has been an indispensible reference for my embedded systems work. The clear and succinct conceptual and software framework, along with the immediately usable code enabled us to get a working prototype of our control system in a few weeks."
Dr. Haitham Hindi, Palo Alto Research Center (PARC)
...QP has been adopted accross the company and is used in all our products on a variety of OS platforms..."
Dr. Paul Montgomery, Director of Engineering, Novariant, Fremont CA
I recently rewrote a major piece of code to utilise the QP framework and it has worked wonders. My previous code used a more traditional state machine and had quickly evolved into spaghetti code. The hierarchical state machine approach made the new code smaller, more robust, and much easier to maintain and extend."
Bob Bradley, Apple Computer, Inc., from Amazon.com review
Quantum Leaps software has revolutionized not just the way we write our software, but the way we approach our design. It is intuitive, easy to implement and comes in an incredibly small package. If you're in the 8-bit world, you need this software!"
Chad Koster, Software Engineer, Honeywell
Simply put, designing sofware using the QP framework lets you code the way you think..."
Rich Wooley, Sofware Engineer, Nipro Diabetes Systems, Florida
NOTE: Each QP™ Development Kit (QDK™) contains only the the software dependent on the particular processor and the compiler, but does not contain the portable QP™ Baseline Code. You need to download and install the QP™ Baseline Code, before you install any QDK™.
learn more about QP™ licensing
The following suite of Free and Open Source Software (FOSS) tools for ARM has been carefully selected, tested, and used to develop all GNU-based QP™ Development Kits (QDKs) for ARM7/ARM9 and ARM-Cortex processors. The following tools support flash-downloading and debugging with the Insight GDB frontend or with the Eclipse™ IDE.
| Application Notes |
|---|
| ARM-Cortex |
| QP and ARM Cortex with GNU (1.9MB PDF) |
| QP and ARM Cortex with IAR (0.7MB PDF) |
| ARM7 / ARM9 |
| QP/C/C++ and ARM7/ARM9 with GNU (1.5MB PDF) |
| QP-nano and ARM7/ARM9 with GNU (1.4MB PDF) |
| QP/C/C++ and ARM7/ARM9 with IAR (0.7MB PDF) |
| QP-nano and ARM7/ARM9 with IAR (0.7MB PDF) |
All QDKs for ARM-Cortex (Cortex-M0 and Cortex-M3) are compliant with the Cortex Microcontroller Software Interface Standard (CMSIS).
| QDK™ | Board | QP™ Version | Compiler | Manual | Download |
|---|---|---|---|---|---|
| QDK/C™ | |||||
| QDK/C ARM-Cortex-GNU LPCXpresso-1114 (Cortex-M0) |
LPCXpresso-1114 (Cortex-M0) |
QP/C 4.1.03 | GNU (LPCXpresso) | AppNote (1.5MB) | Download (2.6MB) |
| QDK/C ARM-Cortex-GNU LPCXpresso-1343 (Cortex-M3) |
LPCXpresso-1343 (Cortex-M3) |
QP/C 4.1.03 | GNU (LPCXpresso) | AppNote (1.5MB) | Download (2.6MB) |
| QDK/C ARM-Cortex-GNU STM3210C-EVAL | STM3210C-EVAL | QP/C 4.1.03 | GNU (devkitARM) | Manual (1.7MB) | Download (4.4MB) |
| QDK/C ARM-Cortex-IAR LM3S811 | EV-LM3S811 | QP/C 4.1.03 | IAR EWARM | AppNote (0.7MB) | Code included in the QP/C™ Baseline |
| QDK/C ARM-Cortex-GNU LM3S811 | EV-LM3S811 | QP/C 4.1.04 | GNU (Sourcery G++) | Code included in the QP/C™ Baseline | |
| QDK/C++™ | |||||
| QDK/C++ ARM-Cortex-GNU LPCXpresso-1114 (Cortex-M0) |
LPCXpresso-1114 (Cortex-M0) |
QP/C++ 4.1.03 | GNU (LPCXpresso) | AppNote (1.5MB) | Download (2.8MB) |
| QDK/C++ ARM-Cortex-GNU LPCXpresso-1343 (Cortex-M3) |
LPCXpresso-1343 (Cortex-M3) |
QP/C++ 4.1.03 | GNU (LPCXpresso) | AppNote (1.5MB) | Download (2.8MB) |
| QDK/C ARM-Cortex-GNU STM3210C-EVAL | STM3210C-EVAL | QP/C++ 4.1.03 | GNU (devkitARM) | Manual (1.7MB) | Download (4.6MB) |
| QDK/C++ ARM-Cortex-IAR LM3S811 | EV-LM3S811 | QP/C++ 4.1.03 | IAR EWARM | AppNote (0.7MB) | Code included in the QP/C++™ Baseline |
| QDK/C++ ARM-Cortex-GNU LM3S811 | EV-LM3S811 | QP/C++ 4.1.04 | GNU (Sourcery G++) | Code included in the QP/C™ Baseline | |
| QDK/C++™ | |||||
| QDK-nano ARM-Cortex-GNU LPCXpresso-1114 (Cortex-M0) |
LPCXpresso-1114 (Cortex-M0) |
QP-nano 4.1.03 | GNU (LPCXpresso) | AppNote (1.5MB) | Download (2.5MB) |
| QDK-nano ARM-Cortex-GNU LPCXpresso-1343 (Cortex-M3) |
LPCXpresso-1343 (Cortex-M3) |
QP-nano 4.1.03 | GNU (LPCXpresso) | AppNote (1.5MB) | Download (2.5MB) |
| QDK-nano ARM-Cortex-GNU STM3210C-EVAL | STM3210C-EVAL | QP-nano 4.1.03 | GNU (devkitARM) | Manual (1.7MB) | Download (3.8MB) |
| QDK-nano ARM-Cortex-IAR LM3S811 | EV-LM3S811 | QP-nano 4.1.03 | IAR EWARM | AppNote (0.7MB) | Code included in the QP-nano™ Baseline |
| QDK-nano ARM-Cortex-GNU LM3S811 | EV-LM3S811 | QP-nano 4.1.03 | GNU (Sourcery G++) | Code included in the QP-nano™ Baseline | |
The QP™ integration with the open source lwIP TCP/IP stack is demonstrated on the Cortex-M3-based EV-LMS6965 from Texas Instruments.
learn more about the QP-lwIP Development Kit| QDK™ | Board | QP™ Version | Compiler | Manual | Download |
|---|---|---|---|---|---|
| QDK/C™ | |||||
| QDK/C ARM-IAR AT91SAM7S (ARM7) | AT91SAM7S-EK | QP/C 4.1.02 | IAR EWARM | Manual (1.0MB) | Download (2.5MB) |
| QDK/C ARM-GNU AT91SAM7S (ARM7) | AT91SAM7S-EK | QP/C 4.1.04 | GNU (devkitARM) | AppNote (1.5MB) | Download (3.0MB) |
| QDK/C ARM-IAR LPC213X (ARM7) | LPC-P213X | QP/C 4.1.02 | IAR EWARM | Manual (1.0MB) | Download (2.7MB) |
| QDK/C ARM-IAR STR912X (ARM9) | STR912-SK | QP/C 4.1.02 | IAR EWARM | Manual (1.0MB) | Download (2.9MB) |
| QDK/C ARM-IAR AT91EB40A (ARM7) | AT91EB40A | QP/C 4.1.02 | IAR EWARM | Manual (1.0MB) | Download (3.1MB) |
| QDK/C++™ | |||||
| QDK/C++ ARM-IAR AT91SAM7S (ARM7) | AT91SAM7S-EK | QP/C++ 4.1.02 | IAR EWARM | Manual (1.0MB) | Download (2.6MB) |
| QDK/C++ ARM-GNU AT91SAM7S (ARM7) | AT91SAM7S-EK | QP/C++ 4.1.04 | GNU (devkitARM) | AppNote (1.5MB) | Download (3.1MB) |
| QDK/C++ ARM-IAR LPC213X (ARM7) | LPC-P213X | QP/C++ 4.1.02 | IAR EWARM | Manual (1.0MB) | Download (2.7MB) |
| QDK/C++ ARM-IAR STR912X (ARM9) | STR912-SK | QP/C++ 4.1.02 | IAR EWARM | Manual (1.0MB) | Download (3.0MB) |
| QDK/C++ ARM-IAR AT91EB40A (ARM7) | AT91EB40A | QP/C++ 4.1.02 | IAR EWARM | Manual (1.0MB) | Download (3.2MB) |
| QDK-nano™ | |||||
| QDKn ARM-IAR AT91SAM7S (ARM7) | AT91SAM7S-EK | QP-nano 4.1.02 | IAR EWARM | Manual (1.0MB) | Download (2.0MB) |
| QDKn ARM-GNU AT91SAM7S (ARM7) | AT91SAM7S-EK | QP-nano 4.1.04 | GNU (devkitARM) | AppNote (1.4MB) | Download (2.8MB) |
Last updated: July 28, 2010