Automatic C/C++ code generation from Simulink models and Matlab code using Embedded Coder

Automatic C/C++ code generation from Simulink models and Matlab code using Embedded Coder

Profile Master thesis student : either master in computer science or master in electrical or computer science engineering
Required skills Programming experience in MATLAB/SIMULINK and C/C++

Embedded hardware notions

Experience in programming micro-controllers is an asset but is not required

Length Minimum 3 months

Département: Systèmes embarqués communicants 

Expertises:

Evolutivité des systèmes embarqués et réseaux IoT 

Context

In traditional system development processes, MATLAB and SIMULINK were mainly used to :

  • explore and discover new concepts and ideas,
  • gain insight into a given problem,
  • evaluate design options and trade-offs.

More specifically, MATLAB is mainly used for algorithm development, data analysis and advanced visualization, while its counterpart SIMULINK is used to generate graphical models, carry out time simulations, do multi-domain modelling and carry out system testing and validation.

Since recently, a development process methodology known as Model-Based Design (MBD) [1] has gained a lot of interest among embedded system designers. In MBD, a system model constitutes the heart of the full development cycle from the definition of functional specifications to test and validation phases through the generation of the implementation code. Compared to traditional development processes, MBD reduces the design time, re-coding errors, enables efficient validation tests … ; therefore reduces cost in global.

This internship is about using MATLAB/SIMULINK and especially the tool “Embedded Coder” [2] for generating C/C++ implementation code in the context of an MBD process [3]. As a study case, we consider a MATLAB model of an audio digital processing application.

Objective of this internship

The main objective of this internship is to understand and practice the complete workflow for generating C code using Embedded coder. To this end, the student will be provided with a real application that is initially implemented in MATLAB.

Tasks to be carried out by the student

  • Understand the provided Matlab application as well as the whole workflow from Matlab to C code generation when using Embedded Coder
  • Create a Simulink model of the Matlab application.
  • Generate C code to be implemented on an embedded hardware platform.
  • Test and verify the generated C code using software in the loop (SIL) and hardware in the loop (HIL).
  • Analyse the generated C code to possibly improve memory usage and execution speed on the target hardware.
  • Write an internship report

For any question on this internship, you may contact Jimmy Nsenga jimmy.nsenga(at)cetic.be or Valéry Ramon valery.ramon(at)cetic.be

Reference

[1] “Model Based Design” from Wikipedia http://en.wikipedia.org/wiki/Model-based_design

[2] “Embedded Coder” http://www.mathworks.nl/products/embedded-coder/

[3] “Model-Based Design with Matlab and Simulink”, http://www.mathworks.nl/model-based-design/