0
0
SimulinkHow-ToBeginner · 4 min read

How to Generate Code for Microcontroller from Simulink

To generate code for a microcontroller from Simulink, use the Embedded Coder along with the appropriate hardware support package. Configure your model for code generation, select the target hardware, and then build the model to produce C code ready for deployment.
📐

Syntax

Use the Simulink Coder and Embedded Coder toolboxes to generate code. The main steps involve setting the system target file and hardware board, then building the model.

  • set_param('modelname', 'SystemTargetFile', 'ert.tlc'): Sets Embedded Coder for code generation.
  • set_param('modelname', 'HardwareBoard', 'YourBoardName'): Selects the microcontroller board.
  • rtwbuild('modelname'): Builds the model and generates code.
matlab
set_param('modelname', 'SystemTargetFile', 'ert.tlc')
set_param('modelname', 'HardwareBoard', 'YourBoardName')
rtwbuild('modelname')
💻

Example

This example shows how to configure a Simulink model named myModel to generate code for an ARM Cortex microcontroller and then build it.

matlab
model = 'myModel';
load_system(model);
set_param(model, 'SystemTargetFile', 'ert.tlc');
set_param(model, 'HardwareBoard', 'ARM Cortex');
rtwbuild(model);
close_system(model, 0);
Output
### Starting build procedure for: myModel ### Successful completion of build procedure for: myModel Code generated in folder: myModel_ert_rtw
⚠️

Common Pitfalls

  • Not installing the correct hardware support package for your microcontroller causes build errors.
  • Forgetting to set SystemTargetFile to ert.tlc results in generic code generation, not optimized for embedded systems.
  • Trying to generate code from models with unsupported blocks or configurations can fail.
  • Not configuring model parameters like solver type and sample time properly can cause runtime issues on the microcontroller.
matlab
%% Wrong way: Missing hardware board setting
set_param('myModel', 'SystemTargetFile', 'ert.tlc');
rtwbuild('myModel');

%% Right way: Set hardware board
set_param('myModel', 'SystemTargetFile', 'ert.tlc');
set_param('myModel', 'HardwareBoard', 'ARM Cortex');
rtwbuild('myModel');
📊

Quick Reference

StepCommand/ActionDescription
1load_system('modelname')Load your Simulink model into memory
2set_param('modelname', 'SystemTargetFile', 'ert.tlc')Select Embedded Coder for code generation
3set_param('modelname', 'HardwareBoard', 'YourBoardName')Choose your microcontroller hardware
4rtwbuild('modelname')Build the model and generate C code
5Deploy generated codeUse generated code with your microcontroller IDE or programmer

Key Takeaways

Always use Embedded Coder with the correct hardware support package for your microcontroller.
Set the system target file to 'ert.tlc' to generate optimized embedded code.
Configure model parameters and hardware settings before building the code.
Check for unsupported blocks or configurations to avoid build errors.
Use the generated C code with your microcontroller's programming tools for deployment.