文档

管理生成代码模块的文件打包

代码生成器生成代码模块。文件打包配置控制代码生成器将代码放入代码模块和头文件的位置。

要定位和检查生成的代码文件,请使用代码视图或HTML代码生成报告。代码生成报告在注释中提供了超链接,您可以单击这些链接在MATLAB中查看生成的代码®帮助浏览器。有关更多信息,请参见生成代码中的可追溯性

生成代码模块

代码生成器在您的工作文件夹中创建一个构建文件夹来存储生成的源代码。构建文件夹包含目标文件、makefile和在代码生成过程中创建的其他文件。生成文件夹的默认名称为模型_ert_rtw

受文件打包影响的代码模块和头文件总结代码生成器生成的源代码的结构。

您可以通过以下几种方式自定义生成的文件集:

  • 文件打包格式:管理为您的模型生成的源文件的数量。选择型号配置参数文件打包格式.有关更多信息,请参见自定义生成代码模块

  • 非虚拟子系统代码生成:指示代码生成器为非虚拟子系统在单独的代码文件中生成单独的函数。您可以控制函数和代码文件的名称。有关更多信息,请参见子系统函数的控制生成(金宝app仿真软件编码器)。

  • 存储类:定义和使用存储类,根据指定的文件名将生成的数据结构划分到不同的文件中。有关更多信息,请参见向数据元素应用内置和自定义存储类

  • 模块打包:将生成的代码导向所需的.c. cpp而且.h文件,并控制生成文件的内部组织。详情请参见数据、功能和文件配置

受文件打包影响的代码模块和头文件

文件 描述

模型.c. cpp

包含实现模型算法的代码入口点(例如,模型_step模型_initialize,模型_terminate).

模型_private.h

包含模型和子系统需要的局部宏和局部数据。文件中包含此文件model.c存档为# include声明。你不需要包括模型_private.h当将手写代码与模型生成的代码连接时。

模型.h

向模型入口点和数据结构声明模型数据结构和公共接口。提供到实时模型数据结构的接口(模型_M)使用访问器宏。

代码生成器:

  • 为每个文件生成单独的头文件金宝app仿真软件的功能块在模型中。

  • 包括模型.h在子系统中.c. cpp模型的文件。

如果您将手写代码与一个或多个模型的生成代码连接,则包括模型.h对于每一个模型。

模型_data.c. cpp

包含参数数据结构、常量块I/O数据结构和模型结构数据类型的任何零表示的声明(如果有条件生成)。如果模型不使用这些数据结构和零表示,模型_data.c. cpp不生成。声明了这些结构和零表示走读生模型.h

模型_types.h

为实时模型数据结构和参数数据结构提供正向声明。可重用函数的函数声明可能需要这些声明。为模型使用的用户定义类型提供类型定义。

rtwtypes.h

定义生成的代码所需的数据类型、结构和宏。有关更多信息,请参见共享实用程序代码的rtwtypes.h的控制位置(金宝app仿真软件编码器)。

multiword_types.h

包含宽数据类型及其块的类型定义。当使用多字数据类型或当您选择一个或多个模型配置参数时,将生成File:

  • MAT-file日志

  • 外部模式

model_reference_types.h

包含计时桥的类型定义。文件为引用的模型或包含模型块。

builtin_typeid_types.h

定义与内置数据类型对应的枚举类型。当您的模型包含一个状态流时,将生成文件®图表,使用消息或当您选择一个或多个配置参数时:

  • MAT-file日志

  • C API模型配置参数

zero_crossing_types.h

包含具有触发器所在的已触发子系统的模型的过零定义不断上升的下降,或要么.文件仅在模型需要时生成。

ert_main.c. cpp

(可选文件)如果选择模型配置参数生成一个示例主程序,生成该文件。有关更多信息,请参见生成一个示例主程序

rtmodel.h

(可选文件)如果您清除模型配置参数生成一个示例主程序,生成该文件。有关更多信息,请参见生成一个示例主程序

包含# include的指令要求rt_main.crt_cppclass_main.cpp静态主程序模块。包括rtmodel.h访问特定于模型的数据结构和入口点,因为静态主程序模块不是在代码生成时创建的。

有关更多信息,请参见静态主程序模块

模型_capi.c. cpp

模型_capi.h

(可选文件)提供数据结构,使运行中的程序能够在没有外部模式的情况下访问模型信号、状态和参数。学习如何生成和使用模型_capi.c. cpp而且.h文件,请参阅使用C API在生成代码和外部代码之间交换数据(金宝app仿真软件编码器)。

用户编写的代码模块

用来与生成的模型代码交互的代码通常包括一个定制的主模块。该模块基于代码生成器生成的主程序。这个定制的主模块还可以包括中断处理程序、设备驱动程序块和其他s函数,以及其他监督或支持代码。金宝app设置支持定制主模块的开发环境的步骤包括:金宝app

  1. 为自己的代码模块建立一个工作文件夹。

  2. 将您的工作文件夹放在MATLAB路径上。

  3. 至少,用模型配置参数通知构建过程源文件和目标文件的位置其他构建信息

  4. 您的开发过程可能需要为特定的微处理器或开发板生成代码,并将代码部署到具有交叉开发系统的目标硬件上。要实现这些目标,需要对基于ert的系统目标文件进行更广泛的修改。

有关如何根据生产需求定制基于ert的系统目标文件的信息,请参见以发展为目标(金宝app仿真软件编码器)。

自定义生成代码模块

型号配置参数文件打包格式指定代码生成器如何将生成的源代码打包到文件中。可以设置为模块化紧凑型(有单独的数据文件),紧凑的.该表描述每种文件打包格式生成的文件和删除的文件。

根据文件打包格式生成文件

文件打包格式 生成的文件 删除文件
模块化(默认)

模型.c

子系统文件(可选)

模型.h

模型_types.h

模型_private.h

模型_data.c(条件)

没有一个

紧凑型(有单独的数据文件)

模型.c

模型.h

模型_data.c(条件)

模型_private.h

模型_types.h(有条件的,见根据文件打包格式删除文件

紧凑的

模型.c

模型.h

模型_data.c

模型_private.h

模型_types.h(有条件的,见根据文件打包格式删除文件

该表描述被删除文件的内容位置。

根据文件打包格式删除文件

删除文件 文件中生成的内容
模型_private.h 模型.c而且模型.h
模型_types.h 模型.h
模型_data.c 模型.c

您可以为每个引用的模型指定不同的文件打包格式。

型号配置参数共享代码放置与文件打包操作交互。如果你设置共享代码放置共享位置,代码生成器在共享位置为实用程序代码生成单独的文件,而不管文件打包格式如何。如果你设置共享代码放置汽车,代码生成器根据文件打包格式选择为实用程序生成代码。

  • 模块化:部分共享工具文件在build文件夹中。

  • 紧凑型(有单独的数据文件):生成实用程序代码模型.c

  • 紧凑的:生成实用程序代码模型.c

文件打包格式紧凑的而且紧凑型(有单独的数据文件)生成模型_types.h对于包含:

  • 一个不同的子系统块。的模型_types.h文件包含定义与变量块相关联的变量对象的预处理器指令。

  • 存储类生成一个单独的头文件。

文件打包格式紧凑的而且紧凑型(有单独的数据文件)不兼容:

  • 包含子系统的模型,它被配置为生成独立的源文件

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

  • 一个模型共享代码放置设置为汽车的数据对象数据范围设置为出口

相关的话题