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
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
Building bare-metal ARM Systems with GNU is an in-depth, 10-part article by Miro Samek of Quantum Leaps, which was second most-popular article of the 2007 year on the Embedded.com website. The article describes in detail how to use the GNU toolchain for ARM to build real-life embedded systems based on ARM microcontrollers. This article demonstrates Quantum Leaps' expertise in the ARM processor and our commitment to open source. The article is the recommended reading for using QP™ and QP-nano™ ports to the ARM processor with GNU.
| Article | C Code | C++ Code | |
|---|---|---|---|
| Part 1: What's need to get started by Miro Samek, Embedded.com, July 2007. | |||
| Part 2: Startup code and the low level initialization by Miro Samek, Embedded.com, July 2007. | |||
| Part 3: The Linker Script by Miro Samek, Embedded.com, July 2007. | |||
| Part 4: C and C++ compiler options by Miro Samek, Embedded.com, July 2007. | |||
| Part 5: Fine-tuning the application by Miro Samek, Embedded.com, July 2007. | |||
| Part 6: General Description of Interrupt Handling by Miro Samek, Embedded.com, August 2007. | |||
| Part 7: Interrupt Locking and Unlocking by Miro Samek, Embedded.com, August 2007. | |||
| Part 8: Low-level Interrupt Wrapper Functions by Miro Samek, Embedded.com, August 2007. | |||
| Part 9: C-Level ISRs and Other ARM Exceptions by Miro Samek, Embedded.com, August 2007. | |||
| Part 10: Example Application and Testing Strategies by Miro Samek, Embedded.com, August 2007. | |||
| Building Bare-Metal ARM Systems with GNU—All Parts | (2.0MB) | c_blinky.zip (0.1MB) | cpp_blinky.zip (0.1MB) |
| Related Application Note: "QP™ and ARM7/ARM9 with GNU" | (1.5MB) | See also the ARM section of this website | |
| Related Application Note: "QP-nano™ and ARM7/ARM9 with GNU" | (1.4MB) | See also the ARM section of this website | |
"The Embedded Angle" was a bi-monthly column in the C/C++ Users Journal magazine that Dr. Miro Samek wrote from February 2003 through December 2003. The column touches on many aspects of embedded systems programming and using state machines in particular. This is recommended reading for all embedded software developers.
| Article | C Code | C++ Code | |
|---|---|---|---|
| The Embedded Mindset by Miro Samek, CUJ, February 2003. | (0.2MB) | (0.03MB) | |
| Quantum Programming for Embedded Systems by Miro Samek CUJ, March 2003. |
(0.2MB) | ||
| Who Moved My State? by Miro Samek, CUJ, April 2003. | (0.2MB) | The calculator examples in C and C++ are included in the standard QP™ distributions | |
| Dèjà Vu by Miro Samek, CUJ, June 2003. | (0.2MB) | The Pedestrian Light Controlled Crossing examples in C and C++ are included in the standard QP™ distributions | |
| An Exception or a Bug? by Miro Samek, CUJ, August 2003. | (0.2MB) | The embedded assertion header file qassert.h is included in all standard QP™ distributions |
|
| Patterns of Thinking by Miro Samek, CUJ, October 2003. | (0.2MB) | ||
| Back to Basics by Miro Samek, CUJ, December 2003. | (0.2MB) | The Time Bomb examples in C and C++ are included in the standard QP™ distributions | |
| Article | C Code | C++ Code | |
|---|---|---|---|
| Statecharts: A Visual Formalism for Complex Systems by David Harel, Science of Computer Programming, 8, 1987. | (1.0MB) | ||
| Biting the Silver Bullet: Toward a Brighter Future for System Development by David Harel, IEEE Computer, 1992. | (1.0MB) | ||
| Executable Object Modeling with Statecharts by David Harel and Eran Gery, IEEE Computer, July 1997. | (1.0MB) | ||
| A crash course in UML state machines Part 1: The over simplification of the event-action paradigm by Miro Samek, Embedded.com, March 2009. | |||
| A crash course in UML state machines Part 2: UML extensions to the traditional FSM formalism by Miro Samek, Embedded.com, March 2009. | |||
| A crash course in UML state machines Part 3: Designing a UML state machine by Miro Samek, Embedded.com, March 2009. | The Calculator examples in C and C++ are included in the standard QP™ distributions | ||
| A Crash Course in UML State Machines—All Parts | (0.8MB) | Code provided on the companion page to the book "Practical UML Statecharts in C/C++, Second Edition" | |
| Article | C Code | C++ Code | |
|---|---|---|---|
| State Oriented Programming by Miro Samek and Paul Montgomery, ESP, August 2000. | (0.2MB) | (0.1MB) | (0.1MB) |
| Yet Another Hierarchical State Machine by Stefan Heinzmann, ACCU Overload issue 64, December, 2004. | (0.2MB) | ||
| Effective UML mapping for modeling state machines by Jin Xin and Jin Yuanping, Embedded.com, July 2006. | |||
| Supporting orthogonal regions in practical large-scale projects by Lawrence Lo, ESD, November 2006. | |||
| UML Statecharts at $10.99 by Miro Samek, Dr.Dobbs, May 2006. | The PEdestrian LIght CONtrolled crossing example is included in the standard QP-nano™ distribution | ||
| Article | C Code | C++ Code | |
|---|---|---|---|
| Automatic Code Generation for Instruemnt Flight Software by Kiri L. Wagstaff at. al. Jet Propulsion Laboratory, 2008. | |||
| Auto-coding UML Statecharts for Flight Software by Ed Benowitz at. al. Jet Propulsion Laboratory, 2008. | |||
| Article | C Code | C++ Code | |
|---|---|---|---|
| Build a Super Simple Tasker by Miro Samek and Robert Ward, ESD, July 2006. | (0.1MB) | ||
| Use an MCU's low-power modes in foreground/background systems by Miro Samek, ESD, September 2007. |
Last updated: March 09, 2010