推荐启动 Include comments 选项并勾选 Simulink block Stateflow object comments 选项以生成注释,注释中带有可以从代码跳转到对应模型的超链接,方便追溯模块与代码的对应关系。 (3)Symbol子标签页面用于设置ert.tlc—族系统目标文件控制下的代码生成不变定义规则,如下图所示: 这些符号包括数据变量和数据类型定义、常量宏、子系统方法、模块的输出变量、局部临时变量及命名的最长字符数等。 Identifier format control 参数组里默认使用标示符 $R$N$M$T,是Embedded Coder 内部使用的标示符,如下图所示: 这些标示符的具体意义如下表所列: 通过上表各种标示符的不同组合,即可规定生成代码中各部分(变量、常量、函数名、结构 体及对象)的名称的生成规则。 Simulink提供的这些标示符生成的变量名虽然可读性不强,但是不会引起代码编译错误。推荐使用默认设置,不要为了提高生成代码可读性轻易进行修改,以免造成不必要的错误。以后会学习更好更安全的提高代码可读性的优化方法。 (4)Custom Code子标签页面主要用于添加用户自定义的或者编译模型时必需的源文件、头文件、文件夹或者库文件等,其页面如下图所示: (5)Interface 子标签页面中包含3组参数:Software Environment、Code Interface、Data Exchange,其对话框如下图所示: Software Envirionment 组的参数中提供 CPL(Code Placement Library)的选择,CPL 中 定义一个表,根据表格将Simulink模块与所对应目标语言的数学函数及操作函数库挂接,以便从模型生成代码。Embedded Coder提供默认的CPL。 Support参数组由7个选择框构成,如下: 每个选择框代表一种嵌人式编码器对代码生成的支持功能,其中一些功能是需要Simulink提供的头文件来支持才能编译为目标文件的,这些头文件一部分存储在路径为MATLABroot simulinkinclude的文件夹中,一部分是在模型生成代码过程中自动生成的(rt开头的头文件)。具体参考下表: Code Interface与Data Exchange参数组用来配置生成代码的接口及数据记录的方式,如无特殊要求建议使用默认配置。 (6)Code Style子标签页面提供了一些关于生成代码风格的选择框选项,如if else分支的完整性确保,if else与switch case语句的选用,生成括号的频度,是否保留函数声明中extern关键字等,如下所示:
rtb_Delay += (rtU.In1 - rtb_Delay) * rtU.In2;
rtY.Out1 = rtb_Delay;
未经优化的代码可读性较差,但是从四则运算关系中及结构体的成员名上可以看出每一个变量所代表的意义。
除此之外,生成的代码还提供了 Code to Model追踪功能,单击下图方框中的超链接,可以直接跳转到模型中对应的模块,该模块或子系统将会以蓝 {MOD}显示。如下所示:
我们单击