通过组合多个优化生成的代码为
构造
此示例展示了代码生成器如何组合为
循环。生成的代码使用为
构造来表示各种建模模式,例如矩阵信号或迭代器块。使用数据依赖分析,代码生成器组合为
构造以减少静态代码大小和运行时分支。
优化的好处为
循环是:
减少ROM和RAM的消耗。
提高执行速度。
为
循环建模模式
在模型中,rtwdemo_forloop, Switch块和MATLAB函数块表示为
构造。在三机一体
“块参数”对话框中港维参数设置为10
.
生成代码
模型不包含跨为
循环迭代。因此,代码生成器合并为
循环变成一个循环。打开金宝app仿真软件编码器或嵌入式编码器然后,生成和查看代码。
已成功完成模型:rtwdemo_forloop的构建过程
生成的文件,rtwdemo_forloop.c
,包含单为
循环。
/*模型步长函数*/ void rtwdemo_forloop_step(void) {int32_T k;/ * MATLAB函数:根> < / Accum ' * / / * MATLAB函数“Accum”:“< S1 >: 1 ' */ /* '< S1 >: 1:3 ' */ /* '< S1 >: 1:4‘* / rtwdemo_forloop_Y。着干活= 0.0;/* ':1:5' */ for (k = 0;k < 10;k++) {/* Switch: ' /Switch'合并:*增益:' /G1' *增益:' /G3' * Inport: ' /In1' * Sum: ' /Sum1' * Sum: ' /Sum2' * UnitDelay: ' /Delay' */ if (3.0 * rtwdemo_forloop_U。In1[k] >= 0.0) {rtwdemo_forloop_DW. In1[k] >= 0.0) {Delay_DSTATE [k] = rtwdemo_forloop_U。三机一体[k] - rtwdemo_forloop_DW.Delay_DSTATE[k]; } else { rtwdemo_forloop_DW.Delay_DSTATE[k] = (rtwdemo_forloop_DW.Delay_DSTATE[k] - rtwdemo_forloop_U.In1[k]) * 5.0; } /* End of Switch: ' /Switch' */ /* MATLAB Function: ' /Accum' */ /* ' :1:5' */ /* ' :1:6' */ rtwdemo_forloop_Y.Out1 += ((real_T)k + 1.0) + rtwdemo_forloop_DW.Delay_DSTATE[k]; } }
关闭模式。