Introduction
This document specifies the OpenCPI Resource-Constrained C/C++ Language (RCC) authoring model and describes how to write RCC workers in C or C++. This model is based on the C language and makes most design choices to minimize resources appropriate for resource-constrained embedded systems. DSP processors with on-chip memories, micro-controllers, and multi-core processors are natural targets for this authoring model. The RCC model is also an appropriate model for any general-purpose processor with a C compiler, when the developer is comfortable with the constraints of the C language.
This document also describes a C++ variant of this authoring model that takes advantage of the expressive power of the C++ language. Both the C and C++ language variants are considered to be based on this one authoring model as so many concepts and details are common.
This specification is based on the authoring model concept as defined in the OpenCPI Component Development Guide, and that is a prerequisite to this document. That document introduces key concepts for all authoring models, including the configuration and lifecycle model of components, and the software execution model for most authoring models targeting general purpose software platforms.
All OpenCPI authoring models are required to coexist and interoperate with the other existing models that are more appropriate for their respective processing technologies. These include the OCL authoring model for GPUs, and the HDL authoring model for FPGAs. Other models and any unique aspects to their associated development workflow, are described in their own documents.
References
This document depends on several others. Primarily, it depends on the OpenCPI Component Development Guide, which describes concepts and definitions common to all OpenCPI authoring models. As the RCC authoring model is based on the C language, specifically C90: ISO/IEC 9899:1990, it also depends on the ISO-C language reference manual and associated libraries. The exceptions to the C90 basis are the use of <stdint.h> from C99. The C++ authoring model is based on the language as defined in ISO/IEC 14882:2003, prior to Cxx11. While it is possible to develop workers enabling C++11 (or later) features, this reduces portability for embedded systems running older compilers. A later major release will be centered on C++11.
Title |
Published By |
Link |
OpenCPI User Guide |
||
OpenCPI Component Development Guide |
||
ISO C Language Specification |
ISO/IEC 9899:90 |
|
ISO C++ Language Specification |
ISO/IEC 14882:2003 |