Simulink code generation from command line

Is there a way to run the C code generation command (of Simulink model) from matlab script instead of clicking on the "Generate Code" button?

 Respuesta aceptada

Nandini
Nandini el 12 de Jun. de 2023
This can be achieved using the rtwbuild function or the slbuild function, depending on your MATLAB version.
In both examples, replace 'your_model_name' with the actual name of your Simulink model. The code generation command will generate the C code based on the model and its configuration.
Make sure to have the necessary C code generation settings properly configured in your Simulink model, such as the target language, toolchain selection, and other relevant options. These settings can be adjusted through the Simulink model interface or programmatically using the appropriate API functions.
Here's an example of how you can use the rtwbuild function:
% Specify the model name
modelName = 'your_model_name';
% Generate code using rtwbuild
rtwbuild(modelName);
Here's an example using the slbuild function (available in MATLAB R2019a and later):
% Specify the model name
modelName = 'your_model_name';
% Create a configuration object for code generation
cfg = coder.config('lib');
% Set any additional code generation options if required
% cfg.CustomSource = 'your_custom_source.c';
% Generate code using slbuild
slbuild(modelName, cfg);

4 comentarios

Hass
Hass el 12 de Jun. de 2023
Thank you! This works for grt but I'm trying to generate a code for ert (Embeded coder) instead of grt ?
Nandini
Nandini el 13 de Jun. de 2023
Editada: Nandini el 13 de Jun. de 2023
To generate code for Embedded Coder (ERT) instead of the Simulink Coder (GRT) from a MATLAB script or command line, you can modify the code generation configuration options and use the ert_shrlib configuration. Here's an example:
% Specify the Simulink model name
modelName = 'mySimulinkModel';
% Specify the target directory for code generation
targetDir = 'path/to/target/directory';
% Generate C code for the Simulink model using ERT
codegen(modelName, '-config', 'ert_shrlib', '-o', targetDir);
Hass
Hass el 13 de Jun. de 2023
Editada: Hass el 13 de Jun. de 2023
Hi Nandini, I tried using the ert_shrlib config but I got the error below!
Any clue to why this is?
Thanks
>>run_code_gen
Unrecognized configuration argument
Use help codegen for more information on using this command.
Error using codegen
Error in run_code_gen (line 10)
codegen(model_name,'-config', 'ert_shrlib', '-o', targetDir);
The script is below
run_code_gen.m
model_name = 'stage';
open_system(model_name);
%cs=config;
targetDir = 'stage_ert_rtw';
%cfg = coder.config('lib');
codegen(model_name,'-config', 'ert_shrlib', '-o', targetDir);
%codegen(model_name,'-config', cfg, '-o', targetDir); %did not work
%codegen -config cfg 'stage'
%rtwbuild(model_name);
Hass
Hass el 13 de Jun. de 2023
This worked for me
myConfigObj = getActiveConfigSet(model_name);
switchTarget(myConfigObj,'ert.tlc',[]);
rtwbuild(model_name);

Iniciar sesión para comentar.

Más respuestas (1)

Manas
Manas el 12 de Jun. de 2023
Hello Hass,
You can use the slbuild function to generate the C code as follows:-
modelName = 'your_model'; % Replace 'your_model' with the name of your Simulink model
% Build the model and generate code
slbuild(modelName);
For More info you can refer to this documentation:

Categorías

Más información sobre Simulink Coder en Centro de ayuda y File Exchange.

Preguntada:

el 9 de Jun. de 2023

Comentada:

el 13 de Jun. de 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by