主要内容

为各个子系统生成代码和可执行文件

您可以为模型内的子系统生成代码并生成可执行文件。代码生成和生成过程使用根模型的代码生成和生成参数。

  1. 在“配置参数”对话框中,设置代码生成和生成参数,类似于设置模型的代码生成。

  2. 右键单击子系统阻止。从关联菜单中选择C/C++代码>构建此子系统从上下文菜单中。

    或者,在当前模型中,单击子系统,然后从C代码选项卡,单击建造.

    当你选择构建这个子系统如果模型在外部模式下运行,则构建过程会自动关闭外部模式,以便构建持续时间。代码生成器在完成构建过程后恢复外部模式。

  3. 这个子系统的构建代码窗口显示子系统参数的列表。上部窗格显示子系统中作为块参数引用的每个变量(或数据对象)的名称、类和存储类。在上部窗格中选择参数时,下部窗格将显示引用该参数的块以及每个块的父系统。

    这个存储类列包含每行的菜单。菜单选项设置存储类或内联参数。若要将参数声明为可调,请设置存储类到一个值,而不是.

    有关可调参数和内联参数以及存储类的更多信息,请参阅在生成的代码中创建可调校准参数.

  4. 选择可调参数后,单击建造启动代码生成和构建过程。

  5. 构建过程在MATLAB中显示状态消息®命令窗口。构建完成后,生成的可执行文件位于工作文件夹中。生成的可执行文件的名称是子系统.exe(在PC平台上)或子系统(在开放组UNIX上)®平台)。子系统是源子系统块的名称。

    生成的代码位于生成子文件夹中,名为子系统_目标_rtw..子系统是源子系统块的名称,并且目标是目标配置的名称。

为子系统生成代码时,可以通过右键单击子系统块和选择C/C++代码>构建此子系统从上下文菜单中。有关S函数的更多信息,请参阅从子系统生成S函数.

子系统构建限制

以下限制适用于建筑子系统:

  • 子系统构建不支持具有函数调用触发器输入或函数调用输金宝app出的子系统。

  • 当你右键单击a子系统阻止并选择C/C++代码>构建此子系统从上下文菜单中构建包含一个子系统的子系统外港为其数据类型参数指定总线对象,必须解决从设置信号标签导致的错误。配置软件以在父模型的“配置参数”对话框中显示这些错误诊断学>连通性窗格中,设置信号标签不匹配参数到错误.

  • 当子系统处于触发或函数调用子系统中时,如果子系统代码与采样时间无关,则右键单击构建过程可能会失败。要确定子系统是否与采样时间无关,请执行以下操作:

    1. 将子系统中的所有块复制到空模型。

    2. 在“配置参数”对话框中的求解器窗格,设置:

      1. 类型固定步长.

      2. 周期采样时间约束确保采样时间独立.

      3. 点击申请.

    3. 更新模型。如果模型与采样时间相关,则Simulink金宝app®在更新图表的过程中生成错误。

  • 在对子系统使用右键单击生成过程时,代码生成器会尝试对生成的代码文件使用子系统名称。在某些情况下,可能与设置时指定的名称冲突,例如,文件名选项使用函数名称或者功能名称选项使用子系统名称.你看到一个错误:

    子系统的模型/潜艇'正在尝试为保留文件生成代码(潜艇)对于模型的潜艇'...

    要解决错误,请修改其中一个冲突的文件名,以便名称是唯一的。

  • 在子系统构建警告中,创建的子系统块路径超链接引用临时模型块路径而不是实际模型块路径。在诊断查看器中,单击子系统超链接不会带您到块。在命令窗口中,您看到一条消息:

    ... 没有系统或文件名为'subsystemname.' 成立。......