In modern software development, well-established Continuous Integration and Continuous Deployment (CI/CD) pipelines have become indispensable. They significantly improve code quality and greatly reduce the effort required for the final release, as the necessary steps are already carried out incrementally throughout the development process. In embedded programming, particularly in the automotive domain, the implementation of such pipelines is more complex. This is where our research project TwinSpace comes into play, representing a crucial step toward a modern development environment in the automotive and embedded industries.
A central aspect of our project is the early identification of performance requirements for the software under development. Through this proactive approach, we can make well-founded decisions regarding hardware selection, thereby laying the foundation for optimized system performance.
By integrating CI practices, we aim to transform development processes and create an awareness of software performance behavior even in the early stages of development, when executing the code is not yet feasible. With the TwinSpace approach, for example, automatic performance measurements can be carried out after code changes.
To achieve this, the components developed within the TwinSpace approach (extractors, generators, and prototyping systems) are integrated into a CI pipeline to enable automated measurement.
In this process, the developed code is transferred into LPDL by one or more extractors. This intermediate representation is then temporarily stored and translated back into C code by a generator. This C code, from which the original functionality can no longer be inferred, is built using the prototyping system and flashed onto a remote target. There, measurements are performed and made available to the developer.