配置stf相关的代码生成参数
许多用于代码生成的模型配置参数特定于GRT、ERT或基于ERT的系统目标文件。有关详细信息,请参阅以下主题。
指定生成的代码接口
使用接口模型配置参数来控制生成代码时使用哪些库,是否在生成的代码中包含对API的支持,以及其他接口选项。金宝app
…… | 选择或输入… |
---|---|
指定代码生成器在生成代码时使用的标准数学库。 | 选择 选择 有关更多信息,请参见标准数学库。 此参数的选项具有依赖关系。看到接口依赖关系。 |
指定代码生成器在生成代码时使用的特定于应用程序的库。 | 如果为数学函数或操作生成特定于应用程序的C或c++代码,请为代码替换库。否则,指定 有关代码替换库的详细信息,请参见选择一个代码替换库和代码替换库。 此参数的选项具有依赖关系。看到接口依赖关系。 |
指向代码生成器放置定点代码和其他实用程序代码的位置。 | 选择
|
指定要添加到将数据记录到mat文件时使用的变量名中的文本,并将日志记录数据与代码生成和模拟应用程序区分开来。 | 输入一个前缀或后缀,例如 |
指定生成的代码中包含的数据交换api。 | 选择一个或多个C API选项,ASAP2接口选项,或外部模式选择。当你选择外部模式,会出现其他选项。数据交换api是独立的,您可以选择这些api的组合。例如,您可以选择C API和外部模式。 有关使用这些接口的详细信息,请参见使用C API在生成代码和外部代码之间交换数据,导出ASAP2文件进行数据测量和校准,您可以使用主机/目标通信通道做什么。 此参数的选项具有依赖关系。看到接口依赖关系。 |
[一个] ANSI是美国国家标准协会,Inc.的注册商标。 [b] ISO是国际标准化组织的注册商标。 |
请注意
之前的设置标准数学库或代码替换库,验证你的编译器是否支持你想要使用的库。金宝app如果选择了工具链不支持的参数值,则可能发生编译器错误。金宝app例如,如果您选择标准数学库C99 (ISO)
如果你的编译器不支持ISO C数学扩展,编译时就会出现金宝app错误。
当嵌入式编码器®产品安装在您的系统上时,则代码生成>接口窗格扩展到包括几个其他选项。有关的描述代码生成>接口窗格参数,请参见型号配置参数:代码生成接口。
一些接口参数依赖于其他参数的设置。下表总结了这些依赖项。
接口依赖关系
参数 | 依赖关系? | 依赖细节 |
---|---|---|
标准数学库 | 是的 | 可用值取决于语言选择。 |
代码替换库 | 是的 | 可用值取决于产品许可和其他参数。有关更多信息,请参见代码替换库。 |
共享代码放置 | 没有 | |
金宝app支持:浮点数(仅限ERT系统目标文件) | 没有 | |
金宝app支持:非有限数 | 是的(ERT) 没有(GRT) |
对于ERT系统目标文件,启用金宝app支持浮点数 |
金宝app支持:复数(仅限ERT系统目标文件) | 没有 | |
金宝app支持:绝对时间(仅限ERT系统目标文件) | 没有 | |
金宝app支持:连续时间(仅限ERT系统目标文件) | 是的 | 要求您禁用删除实时模型数据结构中的错误状态字段。 |
金宝app支持:非内联s函数(仅限ERT系统目标文件) | 是的 | 要求您启用金宝app支持浮点数和金宝app支持非有限数 |
经典调用接口 | 是的 | 要求您禁用单输出/更新功能。对于ERT系统目标文件,要求您启用金宝app支持浮点数。 |
单输出/更新功能 | 是的 | 禁用的经典调用接口 |
需要终止函数(仅限ERT系统目标文件) | 是的 | |
代码接口打包 | 是的 | 可用值取决于语言选择。 |
多实例代码错误诊断 | 是的 | 集代码接口打包来可重用的功能 或c++类 |
传递根级I/O为(仅限ERT系统目标文件) | 是的 | 集代码接口打包来可重用的功能 |
对模型初始化使用动态内存分配(仅限ERT系统目标文件) | 是的 | 集代码接口打包来可重用的功能 |
MAT-file日志 | 是的 | 对于GRT系统目标文件,要求您启用金宝app支持非有限数;对于ERT系统目标文件,要求您启用金宝app支持浮点数,金宝app支持非有限数,需要终止函数 |
MAT-file文件变量名修饰符 | 是的 | 通过MAT-file日志 |
删除实时模型数据结构中的错误状态字段(仅限ERT系统目标文件) | 是的 | 要求您禁用金宝app支持:连续时间。 |
为:信号生成C API | 没有 | |
为:parameters生成C API | 没有 | |
为:states生成C API | 没有 | |
生成C API用于:根级I/O | 没有 | |
ASAP2接口 | 没有 | |
外部模式 | 没有 | |
传输层 | 是的 | 启用外部模式 |
MEX-file参数 | 是的 | 启用外部模式 |
静态内存分配 | 是的 | 启用外部模式 |
静态内存缓冲区大小 | 是的 | 启用静态内存分配 |
配置数字数据支持金宝app
默认情况下,ERT系统目标文件支持整数、浮点数、非有限数和复数的代码生成金宝app。
生成支持…的代码金宝app | 做…… |
---|---|
仅限整数数据 | 清晰的金宝app支持浮点数。如果在代码生成过程中遇到非整数数据或表达式,则会出现错误消息,报告出现问题的块和参数。 |
浮点型数据 | |
非有限值(例如,南 ,正 ) |
|
复杂的数据 |
有关更多信息,请参见型号配置参数:代码生成接口。
配置时间值支持金宝app
某些块需要绝对时间、经过时间或连续时间的值。绝对时间是指从程序开始执行到现在的时间。经过时间是两个触发事件之间所经过的时间。根据所使用的块,您的模型可能需要为支持的时间值调整配置设置。金宝app
…… | 选择…… |
---|---|
生成代码,为使用绝对值或运行时间值(默认值)的块创建和维护整数计数器。 | 金宝app支持绝对时间。有关绝对计时器和流逝计时器的分配和操作的更多信息,请参见绝对时间和消耗时间计算。如果不选择此参数,且模型包含使用绝对时间值或运行时间值的块,则构建过程将生成一个错误。 |
为依赖连续时间的块生成代码。 |
有关更多信息,请参见型号配置参数:代码生成接口。
配置非内联S-Function支持金宝app
要在模型中为非内联s -函数生成代码,请选择金宝app支持非内联s函数。生成非内联s函数需要浮点数和非有限数。因此,当你选择金宝app支持非内联s函数, ERT系统目标文件选择金宝app支持浮点数和金宝app支持非有限数。
当你选择金宝app支持非有限数并且该模型包含一个C MEX s函数,该函数没有相应的TLC实现(用于内联代码生成),构建过程将生成一个错误。
内联s函数在生产代码生成方面非常有利,例如在实现设备驱动程序方面。若要强制使用内联s -函数进行代码生成,请清除金宝app支持非内联s函数。
当为包含带有ERT系统目标文件的非内联s函数的模型生成代码时,当以下任何一种情况为真时,模拟和代码生成结果之间可能不匹配:
型号配置参数
GenCodeOnly
设置为从
或配置参数>代码生成>只生成代码清除。型号配置参数
ProdEqTarget
设置为从
。
若要避免这种不匹配,请设置ProdEqTarget
来在
或选择配置参数>代码生成>只生成代码(或一组GenCodeOnly
来在
).
配置模型函数生成和参数传递
对于ERT系统目标文件,您可以配置如何生成函数以及如何将参数传递给函数的模型。
…… | 做…… |
---|---|
生成与pre-R2012a GRT系统目标文件的主程序模块(grt_main.c 或. cpp ). |
选择经典调用接口和MAT-file日志。另外,清理删除实时模型数据结构中的错误状态字段。经典调用接口通过生成接口到生成的代码的包装器函数调用,提供了一种快速的方法来使用在R2012a或更高版本中生成的代码和R2012a之前基于grt的自定义系统目标文件。 |
通过将输出和更新函数组合在一个函数中,减少开销并使用更多的局部变量 函数。 |
错误或意外行为可能发生在模型块是循环的一部分,模型配置启用单输出/更新功能(默认)。有关直接馈送的详细信息,请参见代数循环(金宝app模型)。 |
生成一个 |
选择需要终止函数。有关详细信息,请参见 |
选择生成可重用代码。看到配置代码重用支持金宝app获取详细信息。 |
|
静态分配模型数据结构,并直接在模型代码中访问它们。 |
清晰的生成可重用代码。生成的代码不可重用或重入。看到入口点函数和调度获取本例中为模型函数生成的调用接口的信息。 |
抑制实时模型数据结构中错误状态字段的生成,rtModel ,例如,如果您不需要记录或监视错误消息。 |
选择删除实时模型数据结构中的错误状态字段。选择此参数还会导致代码生成器省略 当为多个集成模型生成代码时,为所有模型设置相同的参数。否则,集成应用程序可能会出现意外的行为。例如,如果您在一个模型中选择了选项,而在另一个模型中选择了选项,那么集成应用程序可能无法注册错误状态。 如果选择MAT-file日志选择。这两个选项是不兼容的。 |
打开“模型步骤函数”对话框预览并修改 |
点击配置步骤功能。基于功能规范值 |
有关更多信息,请参见型号配置参数:代码生成接口。
配置代码重用支持金宝app
对于GRT、ERT、基于GRT和基于ERT的系统目标文件,您可以配置模型如何重用代码配置参数>代码生成>代码接口打包参数值为可重用的功能
。
的配置参数>代码生成>传递根级I/O为参数提供了一些选项,这些选项控制如何将模型根级别的模型输入和输出传递给
函数。模型
_step
…… | 选择…… |
---|---|
将每个根级模型输入和输出参数传递给 单独函数(默认值) |
代码接口打包>可重用的功能 和传递根级I/O为>个人观点 。 |
将根级输入参数和根级输出参数打包到单独的结构中,然后将这些结构传递给 函数 |
代码接口打包>可重用的功能 和传递根级I/O为>结构参考 。 |
将根级输入参数和根级输出参数打包到模型数据结构中,以支持来自ERT系统目标文件的模型的可重入多实例代码金宝app |
代码接口打包>可重用的功能 和传递根级I/O为>部分模型数据结构 。 |
如果使用代码接口打包>可重用的功能
选择时,考虑使用对模型初始化使用动态内存分配选项,用于控制是否生成分配函数。此选项适用于ERT系统目标文件。
有时候,选择代码接口打包作为可重用的功能
可以生成可编译但不可重入的代码。例如,如果一个信号,DWork
结构或参数数据具有其他存储类汽车
,生成全局数据结构。要处理此类情况,请使用多实例代码错误诊断参数选择诊断的严重级别。
有时,代码生成器无法生成有效且可编译的代码。例如,如果模型包含以下内容之一,则生成的代码无效。
不符合代码重用的s函数
由宽函数调用触发器触发的子系统
在这些情况下,生成在报告问题后终止。
有关更多信息,请参见从顶级模型生成可重入代码(嵌入式编码器)和型号配置参数:代码生成接口。