Avoid reuse of local variables in Embedded coder
12 ビュー (過去 30 日間)
古いコメントを表示
I'm generating code for an m-function in the simulink enviroment which solves an MPC algorithm. When the C-code is generated, some variables are used multiple times in the generated code, in different contexts. This behaviour breaks down my algorithm, and the resulting C-code does not produce the desired output (in this particular case, it does not produce an output at all). I have seen that using 'config.PreserveVariableNames = "UserNames"' produce code which does not modify the local variables. However, the configuration has to be applied using the codegen command. I have tried to pass this configuration to simulink without luck. Is there a way to tell the Embedded Coder to not modify the local variables in the m-function when generating code from Simulink?
0 件のコメント
回答 (1 件)
Fangjun Jiang
2024 年 12 月 10 日
編集済み: Fangjun Jiang
2024 年 12 月 10 日
That is probably not the correct option. You should try to disable the "Reuse local block outputs" option.
There is a "PreserveName" option in Simulink Coder but it is reserved by the Mathworks. https://www.mathworks.com/help/rtw/ref/code-generation-pane-general.html
5 件のコメント
Fangjun Jiang
2024 年 12 月 13 日
Yes. Controlling the code generation exactly as what you want regarding number of files, variable names etc. is sometimes difficult. I would think your best shot is still using the MATLAB Function block in Simulink and generating code as a whole from Simulink. Did you try that "PreserveVariableNames" in the embedded coder configuration? https://www.mathworks.com/help/coder/ref/coder.embeddedcodeconfig.html
Contact the Mathworks tech support for direct assistance.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!