Simulink自动代码生成3

您所在的位置:网站首页 simulink仿真设置内存 Simulink自动代码生成3

Simulink自动代码生成3

2024-07-12 14:41:30| 来源: 网络整理| 查看: 265

代码优化综述

使用simulink代码生成之后,如果需要进一步对执行效率或者内存优化,可以看下面提到的方法。具体可从以下几个方面考虑:

remove initialization coderemoving termination coderemoving unnecessary data supportconditional input branch executionoptimizing data storageinlining parameterblock reductionremoving wrapping code”、“exception handing”和code generation objectives等 下面详细说明下。 代码优化选项

static code metric 用来统计生成代码的概况,如:代码行数、全局变量、入口函数等。 在这里插入图片描述 选择该选项后,生成代码的报告会有个统计页: 在这里插入图片描述 remove initialization code 用来把I/O初始化和内部变量初始化等代码优化掉。 在这里插入图片描述 优化前: 在这里插入图片描述 优化后,将I/O和内部数据的初始化优化掉了: 在这里插入图片描述 该优化项的影响: 在这里插入图片描述 removing termination code 用来把变量的中止赋值等代码优化掉: 在这里插入图片描述 优化前: 在这里插入图片描述 优化后: 在这里插入图片描述 该优化项的影响: 在这里插入图片描述 removing unnecessary data support 此处各个选项的意义大致如字面意思,详细意思和注意事项待补充。 在这里插入图片描述 该优化的影响: 在这里插入图片描述 conditional input branch execution 该选项针对于switch等if判断模块,不激活时,代码会计算switch每个分支的结果,然后判断输出。激活该选项后,先进行switch判断,在输出分支结果。 在这里插入图片描述 如下面这个模型: 在这里插入图片描述 不选择该选项时,生成的代码如下,先进行分支结果计算,然后再用if-else判断输出: 在这里插入图片描述 勾选该项代码如下,先进行if-else进行判断要输出哪个分支,然后计算该分支的结果。这个选项有点类似于预编译,谨慎使用: 在这里插入图片描述 该优化项的影响: 在这里插入图片描述 optimizing data storage 激活第一个选项后(signal storage reuse),下面几个选项会激活 在这里插入图片描述 这里有3个地方需要详细说一下: 1)激活“signal storage outputs”和“enable local block outputs”前: 在这里插入图片描述

激活“signal storage outputs”和“enable local block outputs”后如下图,生成了模型中的3个中间变量(local block outputs) 在这里插入图片描述 在这里插入图片描述 2)在上述激活“signal storage outputs”和“enable local block outputs”的基础上,再激活“reuse local block outputs”代码如下图,代码中部分中间变量被省略了。(对比上上图) 在这里插入图片描述 3)在上述激活“signal storage outputs”、“enable local block outputs”和“reuse local block outputs”的基础上,再激活“eliminate superfluous local variable(expression folding)”代码如下图,代码中部分中间变量进一步被省略了。(对比上图中的红字) 在这里插入图片描述 inlining parameter 这个是很常用的选项,但如果该模型有标定量(storage class为volatile)时慎用。 在这里插入图片描述 选择为tunable时: 在这里插入图片描述 选择为inlined且conditional input branch execution勾选后,代码如下图。 在这里插入图片描述 block reduction 该选项主要优化3个地方:

多余的数据类型转换模块(data type conversation)死逻辑代码(无用代码,覆盖度问题)单任务中的执行速率转换模块(fast-to-slow transition block in a single-tasking system) 在这里插入图片描述 在这里插入图片描述

如上图,将switch设置为inlined后,代码会被优化如下, 在这里插入图片描述

该选项的影响: 在这里插入图片描述 另外还有“removing wrapping code”、“exception handing”和code generation objectives

1)removing wrapping code是数据溢出时的操作,建议在模型测试时发现,而不是在代码生成中解决。 在这里插入图片描述

2)exception handing是数据类型检测,如两个uint8相除后可能会出现single,此处也应该在模型测试时发现,而不应在代码生成中解决。 在这里插入图片描述

3)code generation objectives是simulink自动帮助开发者优化,可以自行设置优化目标,也比较常用。 在这里插入图片描述 在这里插入图片描述

总结

可以用measuring changes in performence进行评估,这块的详细使用方法待补充。 在这里插入图片描述 上述各种选项,总结如下: 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭