主要内容

管理构建过程文件

要应用构建过程生成的代码源文件和头文件,了解构建过程生成的文件和控制文件生成的条件是有帮助的。这些信息提供了对生成的代码资源的访问,例如:

  • 模型入口点的公共接口

  • 枚举类型对应于内置数据类型

  • 描述模型信号、状态和参数的数据结构

代码生成器创建模型.*在代码生成和构建过程中的文件。您可以自定义生成的头文件、源文件和数据文件的文件名。有关更多信息,请参见自定义生成的文件名(嵌入式编码).代码生成器创建额外的文件夹和依赖文件,以支持共享实用程序和模型引用。金宝app有关构建过程创建的文件夹的详细信息,请参见管理构建过程文件夹.有关显示如何使用项目管理生成过程文件夹的示例,请参见在项目中生成代码和模拟模型

根据模型体系结构和代码生成选项,基于grt的系统目标文件的构建过程可以生成构建过程不会为基于ert的系统目标文件生成的文件。同样,对于基于ert的系统目标文件,构建过程包生成的文件与基于grt的系统目标文件不同。看到管理生成代码模块的文件打包(嵌入式编码)

请注意

默认情况下,生成过程删除生成文件夹中的外部(未生成的)源文件。中的指导原则可以在构建文件夹中保存外部源文件在构建文件夹中保存外部代码文件

该表描述了主要生成的文件。在表中所示的生成文件名中,模型表示要为其生成代码的模型的名称。的子系统表示模型中子系统的名称。当你选择创建代码生成报告参数时,代码生成器生成一组HTML文件。每个源文件都有一个HTML文件,加上模型_contents.html索引文件中的超文本标记语言构建文件夹中的子文件夹。表中的源文件和头文件有依赖关系。有关其他文件依赖项的说明,请参见管理构建过程文件依赖项而且添加构建过程依赖项

文件 描述

builtin_typeid_types.h

定义与内置数据类型对应的枚举类型。

当一个或多个条件应用时,模型生成此文件:

  • 您的模型包含一个使用消息的状态流程图。

  • 您的模型配置支持MAT-file日志

  • 您的模型配置启用了C API选项代码生成>接口

modelsources.txt

列出要包含在编译中的其他源代码。

模型。bat

包含窗口®批处理文件命令,用于设置编译器环境并调用使实用程序。

有关使用此文件的详细信息,请参见model.bat

模型.c

模型. cpp

对应于模型文件。

目标语言编译器生成此C或c++源代码文件。该文件包含:

  • 包含文件模型.h而且模型_private.h

  • 数据,除了放入的数据模型_data.c

  • 特定于模型的调度程序代码

  • 特定于模型的求解器代码

  • 型号注册码

  • 算法代码

  • 可选的GRT包装器函数

模型. exe(Windows平台)

模型(UNIX®而且麦金塔电脑平台)

可执行程序文件。

除非显式指定代码生成器只生成代码,否则模型生成将生成此文件。控件控制下的当前文件夹(而不是生成文件夹)中生成可执行文件使开发系统的效用。

模型.h

定义模型数据结构和到模型入口点和数据结构的公共接口。提供实时模型数据结构的接口(模型_rtM)通过访问宏。

子系统.c. cpp模型中的文件包括模型.h.该文件包括:

  • 导出的模型金宝app®数据符号

  • 出口Stateflow®机器父数据

  • 建模数据结构,包括rtM

  • 模型入口点函数

有关更多信息,请参见model.h

模型楼上

控件生成的makefile,它控制编译生成的代码并将其链接到最终的二进制文件中使开发系统的效用。

如果你设置MAKEFLAGS环境变量,不要选择与当前冲突的该变量的选项使构建过程使用的实用程序。

模型.rtw

表示已编译的模型。

默认情况下,构建过程在完成构建过程时删除此ASCII文件。您可以选择保留该文件以供检查。

模型_capi.h

模型_capi.c

(可选文件)包含不使用外部模式描述模型信号、状态和参数的数据结构。

有关更多信息,请参见使用C API在生成代码和外部代码之间交换数据

模型_data.c

包含参数数据结构和常量块I/O数据结构的声明(如果有条件生成),以及模型使用的结构数据类型的零表示。

当模型使用这些数据结构时,模型构建将生成此文件。的走读生结构的声明出现在模型.h.当存在时,该文件包含:

  • 固定块I/O参数

  • 包含文件模型.h而且模型_private.h

  • 模型使用的用户定义结构数据类型的零表示的定义

  • 常数参数

模型_dt.h

(可选文件)声明包含数据类型和数据类型转换信息的结构,用于生成支持外部模式的模型数据结构。金宝app

模型_private.h

包含本地定义模型和子系统的常量和本地数据。

从模型构建生成的源文件包括这个文件。当您将外部代码与来自模型的生成代码连接时,请包含模型_private.h.该文件包含:

  • 导入Simulin金宝appk数据符号

  • 导入的状态流机器父数据

  • 状态流入口点

  • 金宝app仿真软件编码器™详细信息(各种宏,枚举S,等等,对代码来说是私有的)

有关更多信息,请参见管理构建过程文件依赖项

model_reference_types.h

包含计时桥的类型定义。

模型构建为引用的模型或包含模型引用块的模型生成此文件。

模型_targ_data_map.m

(可选文件)包含MATLAB®外部模式用于初始化外部模式连接的语言命令。

模型_types.h

提供实时模型数据结构和参数数据结构的前向声明。

从模型构建生成的头文件包括这个文件。可重用函数的函数声明可以使用这些结构。

multiword_types.h

包含多字宽数据类型及其字大小块的类型定义。如果代码使用多字数据类型,请包含此头文件。

当一个或多个条件应用时,模型生成此文件:

  • 您的模型使用多字数据类型。

  • 您的模型配置支持MAT-file日志

  • 您的模型配置支持代码生成>接口>外部模式

rtGetInf.c

rtGetInf.h

rtGetNaN.c

rtGetNaN.h

rt_nonfinite.c

rt_nonfinite.h

声明并初始化全局非有限值, -,.提供非有限比较函数。

当一个或多个条件应用时,模型生成这些文件:

  • 模型包含s函数。

  • 从模型生成的代码需要非有限数。

  • 您的模型配置支持MAT-file日志

  • 您的模型配置选择grt.tlc随着系统目标文件并启用经典调用接口

rtmodel.h

包含# include静态主程序模块所需的指令,例如rt_main.c

构建过程不会在代码生成时创建这些模块。这些模块包括rtmodel.h访问特定于模型的数据结构和入口点。如果您创建自己的主程序模块,请确保包含rtmodel.h

rtwtypes.h

提供基本类型定义,#定义语句和枚举。

对于不生成GRT接口且没有非内联s函数的基于ert的系统目标文件,rtwtypes.h不包括simstruc_types.h

有关更多信息,请参见rtwtypes.h而且管理构建过程文件依赖项

rtw_proj.tmw

sl_proj.tmw

标记文件。

构建过程生成这些文件以帮助使实用程序确定何时重新编译和链接生成的代码。

rt_defines.h

包含特殊数学常数的类型定义(如π和e),并定义UNUSED_PARAMETER宏。

当生成的代码需要数学常量定义或函数体不访问所需的模型函数参数时,模型构建将生成此文件。

rt_sfcn_helper.h

rt_sfcn_helper.c

(可选文件)提供非内联s函数在模型中使用的函数。

非内联s函数使用函数rt_CallSysrt_enableSys,rt_DisableSys调用下游函数调用子系统。

子系统.c

(可选文件)包含每个非内联非虚拟子系统的C源代码,或在子系统配置为将代码放在单独的文件时复制该代码。

子系统.h

(可选文件)包含非内联非虚拟子系统的导出符号。

模型。bat

此文件包含Windows批处理文件命令,用于设置编译器环境并调用使实用程序。

如果您在构建过程中使用工具链方法,您还可以使用此批处理文件从生成的makefile中提取信息,模型楼上.这些信息包括宏定义和makefile中出现的值,例如CFLAGS(C编译器标志)和CPP_FLAGS(c++编译器标志)。文件夹中包含模型。bat选择作为当前工作文件夹,在命令窗口中输入:

> >系统('模型。bat信息”)

在UNIX和麦金塔电脑平台时,代码生成器不会创建模型。bat文件。要从这些系统上生成的makefile中提取工具链方法构建的信息,在命令窗口中输入:

>> 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)文件包括模型.h.如果模型生成c(或. 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定义生成的代码所需的数据类型、结构和宏。你包括rtwtypes.h为GRT和ERT系统目标文件,而不是包括tmwtypes.h

通常,生成的代码要求整数操作在特定值处溢出或下溢。例如,当代码期望16位整数时,代码不接受8位或32位整数类型。C语言没有为类型中的比特数设置标准,例如字符int等。因此,C中没有普遍接受的数据类型用于大小整数。

为了适应C语言的这一特性,生成的代码使用有大小的整数类型,例如int8_Tuint32_T,以及其他的,这些都不是标准的C类型。在rtwtypes.h类中的信息,生成的代码将这些大小为整数的类型映射到相应的C关键字基类型硬件实现窗格中的配置参数。

的优化版本的代码生成器rtwtypes.h适用以下条件时,为基于ert的系统目标文件:

  • 配置参数>代码生成>接口>先进的参数>经典调用接口未选中。

  • 该模型不包含非内联的s函数。

包括rtwtypes.h.例如,如果在GRT系统目标文件中包含它,那么在基于ert的系统目标文件中使用代码会更容易。

对于GRT和ERT系统目标文件的位置rtwtypes.h类型取决于构建过程是否使用共享公用事业的位置。如果它使用共享位置,则代码生成器放置rtwtypes.hslprj /目标/ _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”

目标语言编译器生成的自定义源文件也可以发出这些文件包括语句到它们生成的文件中。

看到rtwtypes.h共享实用程序代码的控件放置

相关的话题