The redBlocks Component Library applies the concept of component based software reuse to embedded software development.
Just like a GUI-Toolkit is used to build graphical user interfaces from configurable components, the software modules from the redBlocks Component Library can be assembled to cover typical requirements of embedded applications.
Why do software developers tend to reinvent the wheel over and over again when it comes to deeply embedded software development?
First, because the code needs to be optimized for the strongly restricted target resources (memory, processor speed, power consumption, ...) and second, because the close interaction with the target hardware makes code reuse difficult.
The redBlocks Component Library addresses these technical challenges in the following ways:
- It employs a technical approach for software modularization and component configuration that does not introduce any overhead.
- It defines a hardware abstraction layer that cleanly separates all drivers in a platform-independent high-level layer and a low-level part that is hardware-dependent.
In order to implement these concepts without any runtime overhead, code generation techniques are used to tailor the versatile and highly configurable redBlocks Components to the actual application's needs during compile-time.
With these concepts, the platform independent redBlocks Software Components are ideally suited for embedded systems with rather limited resources (e. g. ARM-Cortex-M-Controllers). It is even possible to deploy them on 8 and 16 bit microcontrollers, because they do not introduce any overhead compared to a dedicated implementation of the same functionality.
The redBlocks Toolkit provides all the means to strictly separate the platform independent parts of the embedded software application from the platform dependent parts. Thus, the software can easily be integrated on a different target platform. With this approach it is really easy to integrate the embedded software application with the redBlocks Simulator that offers a graphical Software-in-the-Loop environment and can perform fully automated tests of the integrated software.
All redBlocks Software Components are provided with their complete source code to make sure a debugging session never ends at a black box.