Intialization of local variables in model_step() function

3 vues (au cours des 30 derniers jours)
TAB
TAB le 26 Oct 2012
Commenté : Namrata Biranje le 16 Avr 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 commentaire
Namrata Biranje
Namrata Biranje le 16 Avr 2020
I am facing the same issue.Is there any solution or do I need to contact technical team of Mathworks?

Connectez-vous pour commenter.

Réponses (1)

Kaustubha Govind
Kaustubha Govind le 29 Oct 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 commentaires
TAB
TAB le 29 Oct 2012
Modifié(e) : TAB le 29 Oct 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 le 29 Oct 2012
TAB: Please report this as a bug to MathWorks Support. Hopefully they will also provide a workaround for you.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Simulink Coder dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by