All Projects → QuantumLeaps → Qpn

QuantumLeaps / Qpn

Licence: other
QP-nano real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Qpn

Qpcpp
QP/C++ real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
Stars: ✭ 124 (+15.89%)
Mutual labels:  state-machine, event-driven, fsm, framework, actor-model, actor, embedded-systems, rtos
Qpc
QP/C real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
Stars: ✭ 379 (+254.21%)
Mutual labels:  state-machine, event-driven, framework, actor-model, actor, rtos
qp-arduino
QP real-time embedded frameworks/RTOS for Arduino (AVR and SAM)
Stars: ✭ 37 (-65.42%)
Mutual labels:  fsm, state-machine, event-driven, rtos
Hfsm2
High-Performance Hierarchical Finite State Machine Framework
Stars: ✭ 134 (+25.23%)
Mutual labels:  state-machine, fsm, embedded-systems
DemOS
Free, simple, extremely lightweight, stackless, cooperative, co-routine system (OS) for microcontrollers
Stars: ✭ 18 (-83.18%)
Mutual labels:  avr, state-machine, rtos
Helios
The free embedded operating system.
Stars: ✭ 223 (+108.41%)
Mutual labels:  arduino, avr, rtos
Libhydrogen
A lightweight, secure, easy-to-use crypto library suitable for constrained environments.
Stars: ✭ 247 (+130.84%)
Mutual labels:  arduino, embedded-systems, avr
Erika3
ERIKA Enterprise v3 RTOS
Stars: ✭ 98 (-8.41%)
Mutual labels:  arduino, avr, rtos
qm
QM model-based design tool and code generator based on UML state machines
Stars: ✭ 54 (-49.53%)
Mutual labels:  fsm, state-machine, embedded-systems
Calunium
Arduino clone based on the ATmega644P/ATmega1284P
Stars: ✭ 30 (-71.96%)
Mutual labels:  arduino, avr
Attinycore
Arduino core for ATtiny 1634, 828, x313, x4, x41, x5, x61, x7 and x8
Stars: ✭ 974 (+810.28%)
Mutual labels:  arduino, avr
Tinygo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
Stars: ✭ 9,068 (+8374.77%)
Mutual labels:  arduino, avr
Rust fsm macros
FSM in Rust's macros.
Stars: ✭ 20 (-81.31%)
Mutual labels:  state-machine, fsm
Ir Tester
Quick IR Value Tester
Stars: ✭ 14 (-86.92%)
Mutual labels:  arduino, avr
Prettyos
A Preemptive Hard Real Time kernel for embedded devices.
Stars: ✭ 36 (-66.36%)
Mutual labels:  embedded-systems, rtos
Ferret
Ferret is a free software lisp implementation for real time embedded control systems.
Stars: ✭ 878 (+720.56%)
Mutual labels:  arduino, embedded-systems
Apprun
AppRun is a JavaScript library for developing high-performance and reliable web applications using the elm inspired architecture, events and components.
Stars: ✭ 1,087 (+915.89%)
Mutual labels:  event-driven, framework
Deepsleepscheduler
DeepSleepScheduler is a lightweight, cooperative task scheduler library with configurable sleep and task supervision.
Stars: ✭ 59 (-44.86%)
Mutual labels:  arduino, avr
Lowlevelprogramming University
How to be low-level programmer
Stars: ✭ 7,224 (+6651.4%)
Mutual labels:  arduino, embedded-systems
Actor4j Core
Actor4j is an actor-oriented Java framework. Useful for building lightweighted microservices (these are the actors themselves or groups of them). Enhanced performance of message passing.
Stars: ✭ 48 (-55.14%)
Mutual labels:  actor-model, actor

QP-nano framework

NOTE: If your company has a policy forbidding open source in your product, all QP frameworks can be licensed commercially, in which case you don't use any open source license and you do not violate your policy.


What's New?

NOTE QP-nano has been discontinued from active development and support and is not recommended for new designs. This QP-nano repository is preserved for the existing user base.


Documentation

The offline HTML documentation for this particular version of QP-nano is located in the folder html/. To view the offline documentation, open the file html/index.html in your web browser.

The online HTML documention for the latest version of QP-nano is located at: https://www.state-machine.com/qpn/


About QP-nano

QP-nano (Quantum Platform Nano) is an ultra-lightweight, open source Real-Time Embedded Framework (RTEF) for building modern embedded software as systems of asynchronous, event-driven active objects (actors). The QP-nano framework is a member of a larger QP family consisting of QP/C, QP/C++, and QP-nano frameworks, which are all strictly quality controlled, thoroughly documented, and commercially licensable.

Safer Model of Concurrency

The QP framework family is based on the Active Object (actor) design pattern, which inherently supports and automatically enforces the following best practices of concurrent programming:

  • Keep data isolated and bound to active objects' threads. Threads should hide (encapsulate) their private data and other resources, and not share them with the rest of the system.

  • Communicate among active object threads asynchronously via event objects. Using asynchronous events keeps the threads running truly independently, without blocking on each other.

  • Active object threads should spend their lifetime responding to incoming events, so their mainline should consist of an event-loop that handles events one at a time (to completion), thus avoiding any concurrency hazards within an active object thread itself.

This architecture is generally safer, more responsive and easier to understand and maintain than the shared-state concurrency of a conventional RTOS. It also provides higher level of abstraction and the correct abstractions to effectively apply modeling and code generation to deeply embedded real-time systems.

Hierarchical State Machines

The behavior of active objects is specified in QP-nano by means of Hierarchical State Machines (UML statecharts). The framework supports manual coding of UML state machines in C as well as automatic code generation by means of the free QM modeling tool.

Built-in Real-Time Kernels

The QP-nano framework can run on bare-metal single-chip microcontrollers, completely replacing a traditional "superloop" or an RTOS. The framework contains a selection of built-in real-time kernels, such as the cooperative QV-nano kernel and the preemptive non-blocking QK-nano kernel. Native QP-nano ports and ready-to-use examples are provided for such CPUs MSP430, AVRmega, and ARM Cortex-M (M0/M0+/M3/M4).

Maturity

With 60,000 downloads a year, the QP family is the most popular such solution on the embedded software market. It provides a modern, reusable architecture for embedded applications, which combines the active-object model of concurrency with hierarchical state machines.


Getting Started with QP-nano

The QP-nano Reference Manual provides instructions on how to download, install, and get started with QP-nano quickly.

The AppNote: "Getting Started with QP-nano" contains also a tutorial, in which you build a simple "Blinky" application.


QP-nano Licensing

QP-nano is licensed under the increasingly popular dual licensing model, in which both the open source software distribution mechanism and traditional closed source software distribution models are combined.

NOTE: If your company has a policy forbidding open source in your product, all QP frameworks can be licensed commercially, in which case you don't use any open source license and you do not violate your policy.


QP-nano Documentation

The QP-nano Manual is located online at: https://www.state-machine.com/qpn


How to get help?

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].