Intialization of local variables in model_step() function

2 Ansichten (letzte 30 Tage)
TAB
TAB am 26 Okt. 2012
Kommentiert: Namrata Biranje am 16 Apr. 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 Kommentar
Namrata Biranje
Namrata Biranje am 16 Apr. 2020
I am facing the same issue.Is there any solution or do I need to contact technical team of Mathworks?

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Kaustubha Govind
Kaustubha Govind am 29 Okt. 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 Kommentare
TAB
TAB am 29 Okt. 2012
Bearbeitet: TAB am 29 Okt. 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 am 29 Okt. 2012
TAB: Please report this as a bug to MathWorks Support. Hopefully they will also provide a workaround for you.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Simulink Coder finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by