文档

配置stf相关的代码生成参数

许多用于代码生成的模型配置参数特定于GRT、ERT或基于ERT的系统目标文件。有关详细信息,请参阅以下主题。

指定生成的代码接口

使用接口模型配置参数来控制生成代码时使用哪些库,是否在生成的代码中包含对API的支持,以及其他接口选项。金宝app

…… 选择或输入…
指定代码生成器在生成代码时使用的标准数学库。

选择C89 /人私下偷偷收藏盒式(ANSI)C99 (ISO),或c++ 03 (ISO)标准数学库参数。

选择C89 /人私下偷偷收藏盒式(ANSI)提供ANSI®一个C语言的库函数集。例如,选择C89 /人私下偷偷收藏盒式(ANSI)生成调用的代码的结果sin ()输入参数是双精度还是单精度。但是,如果您选择C99 (ISO)时,生成的代码调用该函数sinf ()当输入参数为单精度时。如果你的编译器支持ISO金宝app®bC数学扩展,选择ISO C库可以产生更高效的代码。

有关更多信息,请参见标准数学库

此参数的选项具有依赖关系。看到接口依赖关系

指定代码生成器在生成代码时使用的特定于应用程序的库。

如果为数学函数或操作生成特定于应用程序的C或c++代码,请为代码替换库。否则,指定没有一个

有关代码替换库的详细信息,请参见选择一个代码替换库代码替换库

此参数的选项具有依赖关系。看到接口依赖关系

指向代码生成器放置定点代码和其他实用程序代码的位置。

选择汽车共享位置共享代码放置。共享位置指示将实用程序的代码放置在slprj工作文件夹中的文件夹,用于构建引用模型。如果您选择汽车

  • 当模型包含模型块,将实用程序代码放在slprj /目标/ _sharedutils文件夹中。

  • 当模型不包含模型块,将实用程序代码放在构建文件夹中(通常在模型。c模型. cpp).

指定要添加到将数据记录到mat文件时使用的变量名中的文本,并将日志记录数据与代码生成和模拟应用程序区分开来。

输入一个前缀或后缀,例如rt__rt,用于mat文件变量名修饰符参数。类中指定的系统输出、状态和模拟时间的变量名的前缀或附加文本数据导入/导出窗格。看到日志程序执行结果参阅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支持非有限数

复杂的数据

选择金宝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的自定义系统目标文件。

通过将输出和更新函数组合在一个函数中,减少开销并使用更多的局部变量模型_step函数。

选择单输出/更新功能

错误或意外行为可能发生在模型块是循环的一部分,模型配置启用单输出/更新功能(默认)。有关直接馈送的详细信息,请参见代数循环(金宝app模型)。

生成一个模型_terminate函数,用于不被设计为无限期运行的模型。

选择需要终止函数有关详细信息,请参见model_terminate

从模型或子系统生成可重用的、可重入的代码。

选择生成可重用代码看到配置代码重用支持金宝app获取详细信息。

静态分配模型数据结构,并直接在模型代码中访问它们。

清晰的生成可重用代码。生成的代码不可重用或重入。看到入口点函数和调度获取本例中为模型函数生成的调用接口的信息。

抑制实时模型数据结构中错误状态字段的生成,rtModel,例如,如果您不需要记录或监视错误消息。

选择删除实时模型数据结构中的错误状态字段选择此参数还会导致代码生成器省略rtModel结构中生成的代码。

当为多个集成模型生成代码时,为所有模型设置相同的参数。否则,集成应用程序可能会出现意外的行为。例如,如果您在一个模型中选择了选项,而在另一个模型中选择了选项,那么集成应用程序可能无法注册错误状态。

如果选择MAT-file日志选择。这两个选项是不兼容的。

打开“模型步骤函数”对话框预览并修改模型_step函数原型(见入口点函数和调度).

点击配置步骤功能基于功能规范模型_step函数(支持的值包括金宝app默认的模型步长函数特定于模型的C原型),你可以预览和修改功能原型。验证并应用更改后,就可以根据函数原型修改生成代码。的详细信息配置步骤功能按钮和“模型步骤功能”对话框,请参见函数原型的控制生成(嵌入式编码)。

有关更多信息,请参见型号配置参数:代码生成接口

配置代码重用支持金宝app

对于GRT、ERT、基于GRT和基于ERT的系统目标文件,您可以配置模型如何重用代码配置参数>代码生成>代码接口打包参数值为可重用的功能

配置参数>代码生成>传递根级I/O为参数提供了一些选项,这些选项控制如何将模型根级别的模型输入和输出传递给模型_step函数。

…… 选择……
将每个根级模型输入和输出参数传递给模型_step单独函数(默认值) 代码接口打包>可重用的功能传递根级I/O为>个人观点
将根级输入参数和根级输出参数打包到单独的结构中,然后将这些结构传递给模型_step函数 代码接口打包>可重用的功能传递根级I/O为>结构参考

将根级输入参数和根级输出参数打包到模型数据结构中,以支持来自ERT系统目标文件的模型的可重入多实例代码金宝app

代码接口打包>可重用的功能传递根级I/O为>部分模型数据结构

如果使用代码接口打包>可重用的功能选择时,考虑使用对模型初始化使用动态内存分配选项,用于控制是否生成分配函数。此选项适用于ERT系统目标文件。

有时候,选择代码接口打包作为可重用的功能可以生成可编译但不可重入的代码。例如,如果一个信号,DWork结构或参数数据具有其他存储类汽车,生成全局数据结构。要处理此类情况,请使用多实例代码错误诊断参数选择诊断的严重级别。

有时,代码生成器无法生成有效且可编译的代码。例如,如果模型包含以下内容之一,则生成的代码无效。

  • 不符合代码重用的s函数

  • 由宽函数调用触发器触发的子系统

在这些情况下,生成在报告问题后终止。

有关更多信息,请参见从顶级模型生成可重入代码(嵌入式编码器)和型号配置参数:代码生成接口

相关的话题

这个话题有用吗?