Code Replacement in Embedded Coder with Embedded Matlab Functions

8 visualizaciones (últimos 30 días)
John Fiaschetti
John Fiaschetti el 17 de En. de 2022
Respondida: Nithin el 1 de Nov. de 2023
I have target specific versions of memcpy and memset I want to use in my project. I have them defined as a code replacement library. If the code being replaced came from built-in blocks, it works correctly. However, I have an embedded Matlab function in my model that will also require these same code replacements when the code is generated, and the code replacement does not work. Embedded Coder does not replace the functions in the generated code.
Is there a setting I might be missing? Do I need to define the code replacement table somewhere besides in Simulink?
Thanks!

Respuestas (1)

Nithin
Nithin el 1 de Nov. de 2023
Hi John,
I understand that you want to generate the code for “memcpy” and “memset” functions using Embedded Coder.
To implement this, kindly refer to the following steps:
1. Use “crviewer” to verify the library with various properties like “Argument order, Conceptual argument names match code generator naming conventions, correct Implementation arguments, Header and source files inclusion, correct I/O types”.
crviewer(table)
2. Create a registration file “rtwTargetInfo.m” as shown in the following code snippet:
function rtwTargetInfo(cm)
cm.registerTargetInfo(@loc_register_crl);
end
function this = loc_register_crl
this(1) = RTW.TflRegistry; %instantiates a registration entry
this(1).Name = 'Code Replacement Library';
this(1).TableList = {'code_replacement_table.m'};
this(1).TargetHWDeviceType = {'*'};
this(1).Description = 'This registers a library';
end
3. Save this file on your MATLAB path and refresh your current MATLAB session with the following command to use your registered Code Replacement Library.
Sl_refresh_customizations
4. Open the configuration parameters in Simulink and navigate to Code Generation > Interface and set the Code replacement Libraries to your library and click on apply.
5. Save the model, generate the code, and check the Code Replacement report in the open reports pane.
6. If the replacement is still not taking place, restart “MATLAB” and “Simulink” and generate the code.
For more information regarding “crviewer” and “Code Replacement library creation”, kindly refer to the following documentation:
I hope this answer provides you with the required information regarding your query.
Regards,
Nithin Kumar.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by