配置系统目标文件
要对模型进行配置以用于代码生成,请按照选择支持代码生成的求解器和从 STF 浏览器中选择系统目标文件中的步骤进行操作。选择系统目标文件时,其他模型配置参数会相应更改,以满足执行环境的要求。例如:
代码接口参数
编译过程参数,例如工具链或模板联编文件
目标硬件参数,例如字长和字节顺序
选择系统目标文件后,您可以修改模型配置参数设置。
您可以在单个工作流中切换系统目标文件,以实现不同的代码生成目的(例如,快速原型构建与生产代码部署)。要进行切换,请为同一模型设置不同配置集,并切换当前操作的活动配置集。有关如何设置配置集和更改活动配置集的详细信息,请参阅管理模型的配置集。
选择支持代码生成的求解器
要编译模型,模型配置必须指定与系统目标文件的代码生成兼容的求解器。对于使用变步长求解器的模型或具有非零开始时间的模型,很少有系统目标文件支持为其生成代码。
对于 GRT、ERT 和基于 ERT 的系统目标文件,将类型配置参数设置为定步长。
对于快速仿真 (Rsim) 或 S-Function (rtwsfcn) 系统目标文件,将类型配置参数设置为定步长或变步长。
有关使用定步长求解器为实时系统目标文件生成代码的要求的详细信息,请参阅基于时间的调度和代码生成 (Embedded Coder)。
当求解器选择配置参数设置为使用 Simulink 求解器模块时,快速仿真 (RSim) 系统目标文件支持非零开始时间。其他系统目标文件不支持非零开始时间 - 代码生成器不生成代码且编译过程产生错误。
从 STF 浏览器中选择系统目标文件
选择求解器(请参阅选择支持代码生成的求解器)后,为系统目标文件配置参数指定值。直接在字段中输入系统目标文件的名称,或使用系统目标文件浏览器选择文件。
要使用系统目标文件浏览器,请执行以下操作:
在配置参数对话框中,在系统目标文件字段旁边,点击浏览按钮。该浏览器显示可用的系统目标文件列表,包括自定义项。
从列表中选择您的文件,例如,GRT 系统目标文件 (
grt.tlc
)。列表框的背景变为黄色,表示该选项未应用。点击应用或确定。系统目标文件浏览器
您还可以从 MATLAB® 代码以编程方式选择系统目标文件,如以编程方式选择系统目标文件中所述。
选择系统目标文件后,您可以修改模型配置参数设置。为模型选择系统目标文件会选择工具链方法或模板联编文件方法进行编译过程控制。有关这些方法的详细信息,请参阅配置工具链 (ToolchainInfo) 或模板联编文件编译过程。
如果要在单个工作流中切换系统目标文件以用于不同的代码生成目的,请为同一模型设置不同配置集。切换当前操作的活动配置集。此方法对于在快速原型构建和生产代码部署之间切换非常有用。有关如何设置配置集和更改活动配置集的详细信息,请参阅管理模型的配置集。
以编程方式选择系统目标文件
Simulink® 模型在配置集中存储模型范围的参数和系统目标文件特定的数据。每个配置集都包含一个组件,用于定义特定系统目标文件的结构以及相关选项的当前值。Simulink 从您指定的系统目标文件中加载部分此类信息。您可以通过复制和修改旧配置集或添加新配置集并浏览以选择新系统目标文件来配置模型以生成备选代码。然后,您可以通过交互方式从这些配置集中选择活动配置(在一个给定时间只能有一个配置集处于活动状态)。
自动执行系统目标文件选择的脚本必须模拟此过程。
要对系统目标文件选择进行编程,请执行下列操作:
通过调用
getActiveConfigSet
函数获取活动配置集的句柄。定义对应于所需系统目标文件、工具链或模板联编文件和/或
make
命令设置的字符向量变量。例如,对于 ERT 系统目标文件,您将为字符向量'ert.tlc'
、'ert_default_tmf'
和'make_rtw'
定义变量。通过调用
switchTarget
函数选择系统目标文件。在函数调用中,指定活动配置集的句柄和系统目标文件。将
TemplateMakefile
和MakeCommand
配置参数设置为在步骤 2 中创建的对应变量。
例如:
cs = getActiveConfigSet(model); stf = 'ert.tlc'; tmf = 'ert_default_tmf'; mc = 'make_rtw'; switchTarget(cs,stf,[]); set_param(cs,'TemplateMakefile',tmf); set_param(cs,'MakeCommand',mc);
有关以编程方式选择系统目标文件的详细信息,请参阅 switchTarget
。
开发自定义系统目标文件
您可以创建自己的系统目标文件,以对接外部代码或操作环境。
有关如何使自定义系统目标文件出现在系统目标文件浏览器中并显示相关控制项的详细信息,请参阅自定义目标及其引用的主题。
另请参阅
getActiveConfigSet
| switchTarget