目录
上一节我们学习了 Code Generation 配置的一部分,这节我们继续进行学习,本节内容主要包含三个方面,部分内容在前面的学习中已经有所涉及,只是没有系统的讲解,这节我们将进行相对比较详细的讲解。废话不多说,开始讲解。
一. Optimization
在前几章的学习中我们建立了 Calculation 模型,与下图的模型区别就在于图中标红的地方,之所以加了一个 Gain 模块,是为了本节内容的讲解。
1.1 Default parameter behavior
模型建立好以后,我们对 Optimization 进行配置,打开 Optimization 可以看到默认配置如图所示。
默认情况下 Default parameter behavior 为 Inlined(内联),生成的 Gain 在代码中的表现形式直接是数值。
将 Default parameter behavior 改为 Tunable,再次生成代码。
可以看到,生成的 Gain 在代码中的表现形式不再是数值,而是一个结构体变量。
结构体的定义及赋值单独生成了一个 Calculation_data.c 文件。
结构体的原始定义及外部声明在 Calculation.h 中完成。
1.2 Pass reusable subsystem outputs as
在默认选项 Individual arguments 时,可复用子系统(原子子系统)的形式如图所示。函数是带有返回值的,直接返回计算结果。
将 Pass reusable subsystem outputs as 改为 Structure reference 再来查看生成代码的区别。
生成的代码不再带有返回值,计算结果以指针的方式进行传递。
在 MySelfFunction.h 头文件中定义了相关结构体,声明的函数也是不带有返回值的,而是通过指针进行传递。
细心的读者可以自行查看二者在 Calculation.c 中的调用情况,也不难发现它们的区别,在此笔者就不进行介绍了。
1.3 Data Initialization
在默认情况下 Data Initialization 的两个子选项都是勾选的,在勾选的情况下不对相关内容进行初始化,生成的代码如图所示。
在不对 Data Initialization 进行勾选时表示对相关内容进行初始化,生成的代码如图所示。
1.4 Optimization levels
该项是对代码进行优化,可以选择执行速度优先,占用内存最小优先,或是平衡内存和速度等,该项根据项目需求进行选择,如果内存足够,那就可以追求执行速度,如果内存紧张就可以选择占用内存最小,选择并不固定。
二. Report
此项决定是否生成代码报告,三个选项分别表示:(1)是否生成代码报告;(2)是否自动打开代码生成报告;(3)是否生成模型网页浏览。在全部勾选的情况下,在生成代码后会自动弹出代码报告。
代码报告如图所示,图中标红的部分就是模型的网页浏览,点击可以查看我们所搭建的模型,通常情况下我们不想让别人看到我们的模型,因此该选项都不进行勾选。
在不勾选时生成 Generate model automatically 时,生成的报告如图所示。从图中可以看出,报告中不在显示模型内容。
当其它两个选项也不勾选时,不在生成报告。
三. Comments
默认情况下 Comments 选项的配置如下图所示。该选项决定模型是否生成注释。
在默认情况下,生成的代码包含各种注释,如图所示。
在取消Include comments时,生成的代码不在包含任何注释。
至于每条选项对应哪个注释,大家自行去研究吧。
四. 总结
本节内容到此结束,其它配置下节继续讲解。