embedded coder cant generate reuseable function
56 次查看(过去 30 天)
显示 更早的评论
I set the subsystem to "Treat as Atomic Unit", the function name option is "User Specified --- Pid_Control", and saved it as a library.
But when I call the function using Simulink,Embedded Coder generates multiple functions (with different function names but the same function content) instead of reusing the function.
And strangely, sometimes it can be reused successfully. I checked the input signal types of these functions and they are all the same.
What could be the reason? thanks
2 个评论
回答(1 个)
MULI
about 6 hours 前
I understand that Embedded Coder generating multiple functions instead of reusing a single function for your reusable subsystem.
It can occur due to following reasons:
- If there are any differences in datatypes, dimensions, or min/max values of signals driving the subsystem inputs.
- Even minor differences in subsystem settings or connected signals can prevent reuse.
- If signals are read at different phases of the simulation (e.g., initialization vs. execution), reuse may not occur.
You can follow these steps to resolve the Issue:
- Ensure identical datatypes, dimensions, and min/max values for all signals driving the subsystem inputs.
- Use a “Signal Specification” block to explicitly define these properties. You can refer to this documentation link for more information on this: https://www.mathworks.com/help/simulink/slref/signalspecification.html
- Set Function Name Options and File Name Options to "Auto" under the Code Generation tab.
- Use the “Simulink.SubSystem.getChecksum” function to compare checksums. You can refer to this link for more information on this function:https://www.mathworks.com/help/simulink/slref/simulink.subsystem.getchecksum.html
Additionally, you may refer this link for detailed guidance on generating reusable code from library subsystems:
0 个评论
另请参阅
类别
在 Help Center 和 File 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!