【发布时间】:2021-10-14 03:42:00
【问题描述】:
在我的 Simulink 模型中,我有几个 Function Caller 模块,如下所示: Simple Function Caller block
函数原型就是y = someFunction()。输出参数使用自定义枚举类型,并以someEnum(1) 形式给出。
输出信号被定义为一维的。
当从模型生成代码时,这些函数调用者总是产生一个预期形式的函数存根
extern someEnum someFunction(void);.
然而,在最近发生了很多变化之后,我刚刚注意到代码生成现在突然产生了形式为
的函数存根extern void someFunction(someEnum *rty_y);
对于一些(不是全部!)Function Caller 块。
我已经比较了有关函数调用程序块的每个参数以及我能找到的相关输出信号,但我找不到受影响的那些与当前版本中按预期工作的那些或以前版本中的相同块之间的任何区别.所有函数和信号都已重命名,但对于那些不受影响的 Function Caller 块也是如此。
代码生成选项也相同。
我试图从帮助文件中了解什么可能导致编码器使用指针参数而不是函数存根的直接返回值,但找不到任何东西。
任何可能导致代码生成器使用指针的提示将不胜感激。
【问题讨论】: