管理构建过程文件依赖关系
对生成代码大小的一个重要控制是管理包含的文件(依赖项)的数量和大小。为了减少生成代码所需的系统头文件和生成的头文件的数量,理解构建过程生成的依赖关系以及导致依赖关系的条件是有帮助的。
生成的源文件和头文件之间的依赖关系如图所示。箭头从文件指向它所包含的文件。其他依赖也存在,例如,对Simulink的依赖金宝app®头文件tmwtypes.h
而且simstruc_types.h
,加上C或c++库文件。图只映射在构建文件夹中生成的那些文件之间的包含关系。这些文件可以引用位于代码生成文件夹中的实用程序和模型引用代码。有关构建过程创建的文件夹和文件的更多信息,请参见管理生成过程文件夹(金宝appSimulink Coder)和管理构建过程文件(金宝app仿真软件编码器)。
这两个表确定了控制为GRT和ERT目标创建依赖文件的条件。要管理与构建相关的依赖关系,请考虑这些条件如何应用到您的模型和代码生成过程中。然后,配置模型参数和代码生成选项,以管理构建过程文件的依赖性。
由于使用基于ert的系统目标文件生成的代码的文件打包选项不同,文件依赖关系与使用基于grt的系统目标文件生成的代码的文件打包略有不同。看到管理生成代码模块的文件打包.
父系统头文件(
)包括子子系统头文件(模型
.h
).在更分层的模型中,子系统类似地在模型层次结构中包含它们的子头文件。因此,子系统能够递归地查看到它们的后代子系统和查看到根系统,因为每子系统
.h
或子系统
.c
包括子系统
. cpp
而且模型
.h
.模型
_private.h
图中为文件
,模型
.h
,模型
_private.h
依赖于头文件子系统
.hrtwtypes.h
.如果您使用的系统目标文件不是基于ERT系统目标文件,那么您生成的源文件可能具有附加的依赖关系tmwtypes.h
而且simstruc_types.h
.
系统头文件
系统头文件使函数声明、类型定义和宏定义可用于遗留代码或外部代码。一些代码生成场景需要包含特定于代码生成器产品的头文件。
代码生成器包含一些用于广泛定义的情况的系统头文件。例如,生成的代码包括< stddef.h >
当模型包含一个需要此头文件的实用函数时。这种方法有助于识别头文件依赖项:
设置模型配置参数共享代码放置来
“共享位置”
然后建立模型。代码生成器将实用函数放置在__sharedutils
文件夹中。使用文件内查找实用程序(例如,grep实用程序)来搜索
.c
而且.h
的文件__sharedutils
文件夹# include
.搜索结果列出了具有头文件依赖关系的实用程序。使用这些信息来确定要从模型中删除的实用程序,并减少生成代码中的头文件依赖关系。
有关更多信息,请参见为定点函数生成共享效用代码(金宝app仿真软件编码器)。
系统头文件 | GRT或ERT系统目标文件的描述和包含条件 |
---|---|
|
定义数学常数 grt生成的代码不包括这个文件。 当代码遵循求解器的模型配置时,ert生成的代码包含此文件停止时间和:
|
|
提供浮点数学函数 当您的模型包含浮点数学函数时,grt生成的代码将包含此文件。 当您的模型包含浮点数学函数时,ert生成的代码将包含此文件,除非代码替换库条目覆盖了该函数。有关更多信息,请参见选择一个代码替换库(金宝app仿真软件编码器)。 |
|
定义零 当您的模型包含一个需要此文件的实用函数时,GRT和ert生成的代码包含此文件。 |
|
提供文件I/O功能 当您的模型包含一个到文件块。 在以下任何情况下,ert生成的代码都包含此文件:
|
|
的整数版本等实用函数 grt生成的代码包含以下任何一种情况:
在以下任何情况下,ert生成的代码都包含此文件:
|
|
提供内存功能,如 当您调用模型初始化代码时,grt生成的代码包含这个文件 当调用块或模型初始化代码时,ert生成的代码包含这个文件 要查看相关块的列表,在命令窗口中输入:
寻找带有N2音符的方块。省略对的调用 |
代码生成器头文件
表中生成的头文件的依赖关系应用于系统目标文件grt.tlc
而且ert.tlc
.从这些基本系统目标文件派生的系统目标文件可以具有附加的头依赖项。从块集、嵌入式目标和自定义s函数生成块的代码会引入额外的头依赖。
头文件 | GRT或ERT系统目标文件的描述和包含条件 |
---|---|
|
定义与内置数据类型对应的枚举类型 当满足以下一个或多个条件时,GRT和ert生成的代码包含此文件:
|
|
为外部模式定义数据结构 当您的模型配置启用外部模式时,GRT和ert生成的代码包含此文件。 |
|
定义外部模式函数 当您的模型配置启用外部模式时,GRT和ert生成的代码包含此文件。 |
|
为非内联s函数提供定点支持金宝app grt生成的代码包含这个文件。 在以下任何情况下,ert生成的代码都包含此文件:
|
|
包含计时桥的类型定义 当构建参考模型或构建包含模型块的模型时,GRT和ert生成的代码包含此文件。 |
|
定义特定于模型的数据类型 GRT和ert生成的代码包含这个文件。 |
|
包含多字范围的数据类型及其字大小块的类型定义 当满足以下一个或多个条件时,GRT和ert生成的代码包含此文件:
对于使用多字数据类型的模型,如果数据类型的长度大于最后生成代码的模型的长度,那么代码生成器将覆盖该文件。为了避免覆盖该文件,设置:
|
|
金宝app支持非有限数 当一个或多个条件适用时,grt生成的代码包含这个文件:
当一个或多个条件适用时,ert生成的代码包含此文件:
|
|
包含特殊数学常数的类型定义(例如π和e),并定义 GRT和ert生成的代码包含以下任何一种情况:
|
|
金宝app支持mat文件日志记录,包括: Rtwtypes.h builtin_typeid_types.h multiword_types.h rt_mxclassid.h rtw_matlogging.h grt生成的代码包含这个文件。 当您选择模型配置参数时,ert生成的代码包含此文件MAT-file日志.看到MAT-file日志(金宝app仿真软件编码器)。 |
|
定义了 当GRT和ert生成的代码包含 |
|
金宝app支持连续时间 当grt生成的代码包含 当您的模型配置选择参数时,ert生成的代码包含此文件金宝app支持:连续时间当代码中没有包含 |
|
金宝app支持外部模式 当grt生成的代码包含 当您的模型配置选择外部模式或者代码没有选择外部模式时,ert生成的代码包含此文件 |
|
金宝app支持mat文件日志记录 当grt生成的代码包含 当ert生成的代码包含 |
|
金宝app支持连续状态 当grt生成的代码包含 当您的模型配置选择参数时,ert生成的代码包含此文件金宝app支持:连续时间当代码中没有包含 |
|
定义代码生成器数据类型 grt生成的代码包含这个文件。使用文件的详细版本,其中包括 ert生成的代码包括这个文件。看到rtwtypes.h. 当你启用(之前禁用)对以下功能的支持时,代码生成器会覆盖之前生成的rtwtypes.h:金宝app
避免重写
|
|
金宝app方法支持调用非内联s函数 Limits.h string.h tmwtypes.h simstruc_types.h grt生成的代码包含这个文件。 在以下任何情况下,ert生成的代码都包含此文件:
|
|
提供生成的代码使用的定义,并包括头文件: Rtw_matlogging.h rtw_extmode.h rtw_continue .h rtw_solver.h sysran_types.h 当grt生成的代码包含 ert生成的代码不包括这个文件。导, |
|
金宝app支持外部模式 当grt生成的代码包含 当您的模型配置选择外部模式或者代码没有选择外部模式时,ert生成的代码包含此文件 |
|
包含具有触发子系统(其中触发器是上升、下降或两者之一)的模型的过零定义。文件仅在模型需要时根据触发信号的数据类型生成。例如,如果触发信号的数据类型为布尔型,则不需要过零检测。 GRT生成的代码不包括GRT代码生成目标的这个文件。 当模型有一个有条件执行的子系统,其中触发器使用零交叉检测时,ert生成的代码包括这个文件。 的内容 |
相关的话题
- 管理生成过程文件夹(金宝app仿真软件编码器)
- 管理构建过程文件(金宝app仿真软件编码器)
- 添加构建过程依赖项(金宝app仿真软件编码器)
- 对带有空格或特殊字符的文件夹金宝app名称的生成过程支持(金宝app仿真软件编码器)
- 为实时系统构建流程工作流(金宝app仿真软件编码器)