Reusable functions (embedded coder) and model reference

8 views (last 30 days)
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

Answers (2)

Yihe Zuo
Yihe Zuo on 25 Oct 2014
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 on 2 Oct 2019
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:

Categories

Find more on Deployment, Integration, and Supported Hardware in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!