Reusable functions (embedded coder) and model reference

6 次查看(过去 30 天)
I have a model A which contains two other models B and C through the model referencing. All this models use a block defined in a custom library. I have set "Function packaging: Reusable function" for the library block. By this way each model (A, B or C) reuse code for the block. However in the generated C code, for each model I have a different function (with different signature but the same implementation). I would create reusable code for the library block. That is I want only one implementation for the function called by all the models A, B and C. I tried to set function name and File name for the library block but I get an error
"Potential conflicting usages of identifier 'rtZCSV_GainLib': a global identifier from model B, and a global identifier from model C The conflict may be resolved by increasing the maximum identifier length on the Symbols pane of the Configuration Parameters dialog box. Otherwise the conflicting identifiers need to be renamed."
Is it possible generate only one implementation for the library block in a given c files and configure all the models A, B, C in a way that they call the same function? What are the settings I have to use?
Thanks,
Paolo

回答(2 个)

Yihe Zuo
Yihe Zuo 2014-10-25
I also got the problem, still can't figure out what is wrong. The best solution is to configure function package to be 'Auto'.

Raghav Paul
Raghav Paul 2019-10-2
Check out this feature:
This generates one copy of the subsystem code in slprj/ert/_sharedutils that will be reused across the model reference hierarchy. You can debug why code isn't reused using the method described here:

类别

Help CenterFile Exchange 中查找有关 Deployment, Integration, and Supported Hardware 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by