Simulink自动代码生成:Code Generation配置(二)

本文详细解读CodeGeneration的优化参数,包括默认行为、参数可调性、子系统输出传递方式、数据初始化和不同优化级别。通过实例演示了内联与可调参数、结构引用的区别,以及内存优化与代码注释的选择对生成代码的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  上一节我们学习了 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时,生成的代码不在包含任何注释。
在这里插入图片描述
在这里插入图片描述
  至于每条选项对应哪个注释,大家自行去研究吧。

四. 总结

  本节内容到此结束,其它配置下节继续讲解。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谁呀!咋滴了!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值