The CLP will be accompanied by its own SW Development Environment (SDE) that will support both development methodologies (Simulink-based and C-based).
The Simulink-based development method translates a control model, written in Simulink language into executable software. Each Simulink block will have an equivalent on the CLP that is called a CLP macro. Macros are developed according a well-defined coding standard.
The following development tools will be provided for bottom-up development:
- A synthesizer that translates the Simulink model into CLP source software by substituting the Simulink blocks by its executable equivalent (the macro).
- An initialization generator that will generate code to bring the processor in the correct initial state. This will notably set-up the processing scheduling correctly and the desired data reporting (via the real-time back tracer), and the safeguarding.
- An assembler to translate the CLP source code into executable software.
- A macro editor enabling to create macros in a structured manner.
A macro library will also be provided, covering commonly used processing blocks and covering all CLP interfaces, together with a number of demo applications.
The development logic is depicted below.
generating an executable from a model
The synthesizer will translate the Simulink model into a sequence of macro calls and will also perform the memory mapping. It will map each input and output of an elementary processing block upon internal registers and will chain the various forms of processing to be carried out. It will generate the source code for the algorithm.
The initialization generator will also generate code in order to bring the processor in the desired state (boot method, data reporting, safeguarding, scheduling,…).
The assembler will insert the actual code for the macros and the initialisation code, and will generate the executable code.
Various checks will be performed during the generation process, the most important being the execution time of the algorithm and the proposed scheduling of the software.
For supporting the C-based development method, a separate CLP (C-) compiler will also be provided for users wanting to generate CLP code that is not generated from a Simulink model and that want to generate code on their own. The tool will be targeted for simple applications which do not require specific optimisation. In that case, the user will write C-code that will be compiled into CLP executable code.