The Open Component Portability Infrastructure (OpenCPI) is a real-time embedded (RTE) middleware solution that simplifies programming of heterogeneous processing applications requiring a mix of field-programmable gate arrays (FPGA), general-purpose processors (GPP), digital signal processors (DSP), and high-speed switch fabrics. The "mix" can be over a lifecycle (technology insertion) as well as within a single implementation (to meet SWAP constraints). CPI improves code portability, interoperability, and performance in FPGA and DSP-based environments by providing well-defined waveform component APIs with a set of infrastructure blocks that act as a hardware abstraction layer (HAL).
QP is a family of lightweight software frameworks for building responsive and modular real-time embedded applications as systems of cooperating, event-driven active objects (actors). The QP family consists of QP/C, QP/C++, and QP-nano frameworks, which are all strictly quality controlled, superbly documented, and commercially licensable. The behavior of active objects is specified in QP by means of hierarchical state machines (UML statecharts). The frameworks support manual coding of UML state machines in C or C++ as well as automatic code generation by means of the free QM modeling tool. All QP frameworks can run on bare-metal MCUs, completely replacing a traditional RTOS. Ports and ready-to-use examples are provided for all major CPUs, such as ARM Cortex-M, ARM7/9, MSP430, C28x, C55x, RX, R8C, AVR32, AVRMega, PIC24/dsPIC, as well as Arduino and mbed. QP/C and QP/C++ can also work with a traditional OS/RTOS, such as: POSIX (Linux, QNX), Windows, VxWorks, ThreadX, and uC/OS.