ERT code generation customization

3 visualizaciones (últimos 30 días)
TAB
TAB el 8 de Ag. de 2011
Editada: Guilherme T Silva el 15 de Feb. de 2019
I want to customize the code generated by ERT target, but i dont know where to start. One of my customization requirement is -- ERT packs the external inputs & outputs in structure in generated code as below
/* External inputs (root inport signals with auto storage) */
typedef struct {
uint8_T U8_Num1; /* '<Root>/U8_Num1' */
uint8_T U8_Num2; /* '<Root>/U8_Num2' */
} ExternalInputs_cmp;
/* External outputs (root outports fed by signals with auto storage) */
typedef struct {
uint16_T U16_ProductOut; /* '<Root>/U16_ProductOut' */
boolean_T B_CompRes; /* '<Root>/B_CompRes' */
} ExternalOutputs_cmp;
I want to use external ips and ops names (eg. U8_Num1 and U8_Num2) as global variable in my code. So generated code should process them as it is
uint8_T U8_Num1; /* '<Root>/U8_Num1' */
uint8_T U8_Num2; /* '<Root>/U8_Num2' */
I want to know which TLCs should be modified and how? Can someone help? Thanks.

Respuesta aceptada

Kaustubha Govind
Kaustubha Govind el 8 de Ag. de 2011
You shouldn't need to modify TLC files to do this. You only have to specify the right storage class for your input/output signals. See Interfacing Signals to External Code for documentation.
Here's what you should do:
  1. Right click on an input/signal signal (make sure you click on the signal - not inport/outport block)
  2. Select "Signal Properties"
  3. In the dialog window, enter a name (eg. U8_Num1) for "Signal Name"
  4. In the "Code Generation" tab, select storage class as ImportedExtern or ExportedGlobal (for ImportedExtern, you need to provide a header with the declarations)
  5. The generated datatype is the same as the one specified on the inport/outport block
  3 comentarios
Naini Dawar
Naini Dawar el 14 de Mzo. de 2017
how can we create local variables. I need the variable to be declared locally in the same function rather than being the extern.
Guilherme T Silva
Guilherme T Silva el 15 de Feb. de 2019
Editada: Guilherme T Silva el 15 de Feb. de 2019
You can try the Localizable storage class:

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Simulink Coder en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by