Intialization of local variables in model_step() function

2 visualizaciones (últimos 30 días)
TAB
TAB el 26 de Oct. de 2012
Comentada: Namrata Biranje el 16 de Abr. de 2020
Is it possible to initialize the local variables (with zero or with any value) in model_step() function in the code generated by Embedded coder ?
I am using R2011b.
I want code to generated like this.
void model_step()
{
boolean_T rtbxyz = 0;
uint8_T rtbklm[2] = {0,0};
/* Model logic */
}
I gone through the code generation settings but not found any way.
  1 comentario
Namrata Biranje
Namrata Biranje el 16 de Abr. de 2020
I am facing the same issue.Is there any solution or do I need to contact technical team of Mathworks?

Iniciar sesión para comentar.

Respuestas (1)

Kaustubha Govind
Kaustubha Govind el 29 de Oct. de 2012
What block generates the code that uses these variables? The block is responsible for initialization of these variables. If it is an S-function block, it's TLC file might need fixing. If it is a shipped Simulink library block, uninitialized variables should be considered a bug.
  4 comentarios
TAB
TAB el 29 de Oct. de 2012
Editada: TAB el 29 de Oct. de 2012
Again thanks kaustubha for your reply.
I am sure that these variables are not initialized before use. They are generally use to store intermediate data for calculation. Please see the below example of generated code
void XYZRunnable(void)
{
/* In the declaration */
uint8_T rtb_XYZ_Direction[2];
/* In the code */
Rte_Call_XYZ_Direction_data_read(&rtb_XYZ_Direction);
}
In my code Rte_Call_XYZ_Direction_data_read returns only 1 byte so 2nd byte in local variable rtb_XYZ_Direction must be zero. Thus initialization of the rtb_XYZ_Direction is needed as
uint8_T rtb_XYZ_Direction = {0,0};
Otherwise 2nd byte in it will have garbage value.
And......... Reporting some issue to mathwork is usually a long procedure (as they ask for license number & it should be under maintenance etc...) I will wait here to see if somebody has any solution.
The last option for me is to modify the generated code using some script or manually.
Kaustubha Govind
Kaustubha Govind el 29 de Oct. de 2012
TAB: Please report this as a bug to MathWorks Support. Hopefully they will also provide a workaround for you.

Iniciar sesión para comentar.

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by