|
QP-nano
|
QP-nano has been specifically designed to enable event-driven programming with concurrent UML-style hierarchical state machines on low-end 8- and 16-bit single-chip microcontrollers (MCUs), such as 8051, PIC, AVR, MSP430, 68HC08/11/12, R8C/Tiny, and others alike, with a few hundred bytes of RAM and a few kilobytes of ROM. With QP, coding of modern state machines directly in C or C++ is a non-issue. No big tools are needed.
QP-nano requires only 1-2KB of code and just several bytes of RAM. This tiny footprint, especially in RAM, makes QP-nano ideal for high volume, cost-sensitive applications, such as motor control, lighting control, capacitive touch sensing, remote access control, RFID, thermostats, small appliances, toys, power supplies, battery chargers, or just about any custom system-on-a-chip (SOC or ASIC) that contains a small processor inside. Also, because the event-driven paradigm naturally uses the CPU only when handling events and otherwise can very easily switch the CPU into a low-power sleep mode (see 10. Comparison to the Traditional Approach), QP-nano is particularly suitable for ultra-low power applications, such as wireless sensor networks or implantable medical devices.
The following diagram shows the total RAM and ROM size requried for QP-nano, full-version QP, small RTOS, and other popular RTOSes and OSes. Please note the logarithmic axes.
QP-nano is available for download from the following websites:
The QP Datasheet (see http://www.state-machine.com/products/QP_datasheet.pdf) provides a concise summary of QP-nano features and benefits.
QP-nano is distributed in a simple platform-independent ZIP file or in a self-extracing Windows executable. Either way, installing QP-nano requires simply decompressing the provided archive into a directory of your choice (e.g., qpn for QP-nano). The Section Directories and Files in the QP-nano Distribution describes the content of the standard QP-nano distribution.
The QP-nano Tutorial explains all steps necessary to develop a non-trivial QP-nano application. The Tutorial is based on Chapter 1 of Practical UML Statecharts in C/C++, Second Edition.
All versions of QP are described in detail in the book Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems, Newnes 2008 (ISBN-10: 0750687061, ISBN-13: 978-0750687065).
The book bridges the gap between high-level abstract concepts of the Unified Modeling Language (UML) and the actual programming aspects of modern hierarchical state machines (UML statecharts).
This book is presented in two parts. In Part I, you get a practical description of the relevant state machine concepts starting from traditional finite state automata to modern UML state machines followed by state machine coding techniques with the QEP hierarchical event processor as well as several state-machine design patterns, all illustrated with executable examples.
In Part II, you find a detailed design study of the QF real-time framework, QK preemptive kernel, and QS software tracing, which are indispensable for combining concurrent, event-driven state machines into robust systems. In addition to its value as a reference to the QP event-driven platform, Part II explans the key event-driven programming concepts such as inversion of control ("Hollywood Principle"), blocking versus non-blocking code, run-to-completion (RTC) execution semantics, the importance of event queues, dealing with time, and the role of state machines to maintain the context from one event to the next. This background is designed to help software developers in making the transition from the traditional sequential to the modern event-driven programming, which can be one of the trickiest paradigm shifts.
All versions of the QP software, including QP-nano, are available under dual licensing model, in which both the open source software distribution mechanism and traditional closed source software licensing models are combined.
All versions of the QP software are available under the gpl2_page (GPL2), as published by the Free Software Foundation and included in every distribution of the QP software. The GPL2 license is probably the best known and most established open source license. It is fully compatible with the Open Source Definition, is endorsed by the Free Software Foundation, and has been approved by the Open Source Initiative.
Please note that GPL2 applies to software based not upon how it is used but upon how it is distributed. In this respect GPL2 can be restrictive, because GPL2 Section 2(b) requires that if you distribute the original software or any derivative works based on the software under copyright law, you must release all such derivative works also under the terms of the GPL2 open source license. GPL2 clearly specifies that distributing the original software or any derivative works based upon it in binary form (e.g., embedded inside devices) also represents distribution of the software.
To read more about open source licensing for QP or QP-nano, or to contribute work to the open source community, please visit the following website:
or please contact Quantum Leaps, LLC via the following e-mail address:
If you are developing and distributing traditional closed source applications, you might purchase one of the Quantum Leaps commercial licenses, which are specifically designed for users interested in retaining the proprietary status of their code. This alternative licensing is possible, because Quantum Leaps, LLC owns all intellectual property in the QP and QP-nano software and as the copyright owner can license the software any number of ways. The Quantum Leaps commercial licenses expressly supersede the gpl2_page open source license. This means that when you license the software under a commercial license, you specifically do not use the software under the open source license and therefore you are not subject to any of its terms.
To read more about the commercial licensing options, pricing, technical support, and to request a commercial license, please visit the following website:
or please contact Quantum Leaps, LLC via the following e-mail address:
Copyright © 2002-2011 Quantum Leaps, LLC. All Rights Reserved.
http://www.state-machine.com
1.7.6.1