要应用构建过程生成的代码源文件和头文件,了解构建过程生成的文件和控制文件生成的条件是有帮助的。这些信息提供了对生成的代码资源的访问,例如:
模型入口点的公共接口
枚举类型对应于内置数据类型
描述模型信号、状态和参数的数据结构
代码生成器创建
在代码生成和构建过程中的文件。您可以自定义生成的头文件、源文件和数据文件的文件名。有关更多信息,请参见自定义生成的文件名(嵌入式编码).代码生成器创建额外的文件夹和依赖文件,以支持共享实用程序和模型引用。金宝app有关构建过程创建的文件夹的详细信息,请参见管理构建过程文件夹.有关显示如何使用项目管理生成过程文件夹的示例,请参见在项目中生成代码和模拟模型.模型
.*
根据模型体系结构和代码生成选项,基于grt的系统目标文件的构建过程可以生成构建过程不会为基于ert的系统目标文件生成的文件。同样,对于基于ert的系统目标文件,构建过程包生成的文件与基于grt的系统目标文件不同。看到管理生成代码模块的文件打包(嵌入式编码).
请注意
默认情况下,生成过程删除生成文件夹中的外部(未生成的)源文件。中的指导原则可以在构建文件夹中保存外部源文件在构建文件夹中保存外部代码文件.
该表描述了主要生成的文件。在表中所示的生成文件名中,模型
表示要为其生成代码的模型的名称。的子系统
表示模型中子系统的名称。当你选择创建代码生成报告参数时,代码生成器生成一组HTML文件。每个源文件都有一个HTML文件,加上模型
_contents.html
索引文件中的超文本标记语言
构建文件夹中的子文件夹。表中的源文件和头文件有依赖关系。有关其他文件依赖项的说明,请参见管理构建过程文件依赖项而且添加构建过程依赖项.
文件 | 描述 |
---|---|
|
定义与内置数据类型对应的枚举类型。 当一个或多个条件应用时,模型生成此文件:
|
|
列出要包含在编译中的其他源代码。 |
|
包含窗口®批处理文件命令,用于设置编译器环境并调用 有关使用此文件的详细信息,请参见model.bat. |
|
对应于模型文件。 目标语言编译器生成此C或c++源代码文件。该文件包含:
|
|
可执行程序文件。 除非显式指定代码生成器只生成代码,否则模型生成将生成此文件。控件控制下的当前文件夹(而不是生成文件夹)中生成可执行文件 |
|
定义模型数据结构和到模型入口点和数据结构的公共接口。提供实时模型数据结构的接口( 子系统
有关更多信息,请参见model.h. |
|
控件生成的makefile,它控制编译生成的代码并将其链接到最终的二进制文件中 如果你设置 |
|
表示已编译的模型。 默认情况下,构建过程在完成构建过程时删除此ASCII文件。您可以选择保留该文件以供检查。 |
|
(可选文件)包含不使用外部模式描述模型信号、状态和参数的数据结构。 有关更多信息,请参见使用C API在生成代码和外部代码之间交换数据. |
|
包含参数数据结构和常量块I/O数据结构的声明(如果有条件生成),以及模型使用的结构数据类型的零表示。 当模型使用这些数据结构时,模型构建将生成此文件。的
|
|
(可选文件)声明包含数据类型和数据类型转换信息的结构,用于生成支持外部模式的模型数据结构。金宝app |
|
包含本地 从模型构建生成的源文件包括这个文件。当您将外部代码与来自模型的生成代码连接时,请包含
有关更多信息,请参见管理构建过程文件依赖项. |
|
包含计时桥的类型定义。 模型构建为引用的模型或包含模型引用块的模型生成此文件。 |
|
(可选文件)包含MATLAB®外部模式用于初始化外部模式连接的语言命令。 |
|
提供实时模型数据结构和参数数据结构的前向声明。 从模型构建生成的头文件包括这个文件。可重用函数的函数声明可以使用这些结构。 |
|
包含多字宽数据类型及其字大小块的类型定义。如果代码使用多字数据类型,请包含此头文件。
|
|
声明并初始化全局非有限值 当一个或多个条件应用时,模型生成这些文件:
|
|
包含 构建过程不会在代码生成时创建这些模块。这些模块包括 |
|
提供基本类型定义, 对于不生成GRT接口且没有非内联s函数的基于ert的系统目标文件, 有关更多信息,请参见rtwtypes.h而且管理构建过程文件依赖项. |
|
标记文件。 构建过程生成这些文件以帮助 |
|
包含特殊数学常数的类型定义(如π和e),并定义 当生成的代码需要数学常量定义或函数体不访问所需的模型函数参数时,模型构建将生成此文件。 |
|
(可选文件)提供非内联s函数在模型中使用的函数。 非内联s函数使用函数 |
|
(可选文件)包含每个非内联非虚拟子系统的C源代码,或在子系统配置为将代码放在单独的文件时复制该代码。 |
|
(可选文件)包含非内联非虚拟子系统的导出符号。 |
模型
。bat此文件包含Windows批处理文件命令,用于设置编译器环境并调用使
实用程序。
如果您在构建过程中使用工具链方法,您还可以使用此批处理文件从生成的makefile中提取信息,
.这些信息包括宏定义和makefile中出现的值,例如模型
楼上CFLAGS
(C编译器标志)和CPP_FLAGS
(c++编译器标志)。文件夹中包含
选择作为当前工作文件夹,在命令窗口中输入:模型
。bat
> >系统('模型。bat信息”)
在UNIX和麦金塔电脑平台时,代码生成器不会创建
文件。要从这些系统上生成的makefile中提取工具链方法构建的信息,在命令窗口中输入:模型
。bat
>> system('gmake -f模型楼上信息”)
模型
.h头文件
声明模型数据结构和到模型入口点和数据结构的公共接口。该头文件还提供了一个到实时模型数据结构(模型
.h
)使用存取宏。如果您的代码接口到建模函数或建模数据结构,请包含模型
_M
:模型
.h
输出全局信号
extern int32_T INPUT;/* '<根>/在' */
全局结构定义
/*块参数(自动存储)*/ extern Parameters_mymodel
实时模型(RTM)宏定义
#ifndef rtmGetSampleTime # define rtmGetSampleTime(rtm, idx) ((rtm)->Timing.sampleTimes[idx]) #endif
模型入口点函数(ERT示例)
void mymodel_initialize(void);Extern void mymodel_step;Extern void mymodel_terminate;
的c
(或. cpp
)文件包括
.如果模型生成模型
.hc
(或. cpp
)文件从TLC脚本,TLC源可以包括
.模型
.h
# include“% < CompiledModel.Name > . h”
如果c
是静态源文件,可以用固定头文件命名吗rtmodel.h
.此文件包括
头文件:模型
.h
#include "model.h" /*如果生成main.c */
或
*如果使用静态main.c */
其他外部源文件可能需要包含
接口到模型数据,例如导出的全局参数或信号。的模型
.h
由于生成代码的要求,文件本身可以有额外的头依赖项。看到系统头文件而且代码生成器头文件.模型
.h
若要减少依赖项和减少包含的头文件数量,请参见管理构建过程文件依赖项.
头文件rtwtypes.h
定义生成的代码所需的数据类型、结构和宏。你包括rtwtypes.h
为GRT和ERT系统目标文件,而不是包括tmwtypes.h
.
通常,生成的代码要求整数操作在特定值处溢出或下溢。例如,当代码期望16位整数时,代码不接受8位或32位整数类型。C语言没有为类型中的比特数设置标准,例如字符
,int
等。因此,C中没有普遍接受的数据类型用于大小整数。
为了适应C语言的这一特性,生成的代码使用有大小的整数类型,例如int8_T
,uint32_T
,以及其他的,这些都不是标准的C类型。在rtwtypes.h
类中的信息,生成的代码将这些大小为整数的类型映射到相应的C关键字基类型硬件实现窗格中的配置参数。
的优化版本的代码生成器rtwtypes.h
适用以下条件时,为基于ert的系统目标文件:
配置参数>代码生成>接口>先进的参数>经典调用接口未选中。
该模型不包含非内联的s函数。
包括rtwtypes.h
.例如,如果在GRT系统目标文件中包含它,那么在基于ert的系统目标文件中使用代码会更容易。
对于GRT和ERT系统目标文件的位置rtwtypes.h
类型取决于构建过程是否使用共享公用事业的位置。如果它使用共享位置,则代码生成器放置rtwtypes.h
在slprj /目标/ _sharedutils
;否则,它会放置rtwtypes.h
在构建文件夹(
).看到指定生成的代码接口.模型
_目标
_rtw
源文件包括rtwtypes.h
头文件,当源文件使用代码生成器类型名称或其他代码生成器定义时。一个典型的例子是使用代码生成器数据类型声明变量的文件,例如,uint32_T myvar#
.
代码生成器和s函数使用的源文件可以使用预处理器宏MATLAB_MEX_FILE
.宏观定义来自墨西哥人
功能:
#ifdef MATLAB_MEX_FILE #包含“tmwtypes.h
代码生成器的源文件c
(或. cpp
)文件包括rtwtypes.h
不需要预处理器检查。
# include“rtwtypes.h”
目标语言编译器生成的自定义源文件也可以发出这些文件包括
语句到它们生成的文件中。