simulink如何配置我们的自动代码生成
仿真时间设置我们仿真我们这个模型的一个时间,目前默认它是10秒。如果把它改成“INF”,它就是会一直仿真。
求解器选择,因为我们使用的是嵌入式代码,因此我们一般嵌入式是一个数字量。所以选择定步长和离散的工状态。如果你是做算法开发的,可能会用到一些连续的状态,所以可以选择连续。
固定步长基础采样时间,这个采样时间默认是auto的,我们把它改成0.001。那么simulink会按照0.001毫秒执行。
任务和采样时间选项 保持默认
模型测试的时候可能会用到,如果勾上的话,我们可以配置一下,我们测试模型的时候从外界导入的一些输入。
可以从excel,还有MATLAB的这个工作区间,导入一些我们的特殊数据
保存到工作区或文件 是simulink工作期间需要保存的一些东西。现在它默认的是有时间输出以及信号记录数据存储。这些的话保持默认状态就可以了。
主要针对是的是我们模型的一个开发。比如说你做算法开发涉及到一些数据规范,这种也是要需要配一个。
唯一需要注意的是数据类型未定义,因为double类型的话我们比较少用到,尤其在我们嵌入式中,我们基本上都是U8类型。所以修改成single。
诊断这一块主要针对的是你编译模型或者编译你那个state blog状态机的时候,它的一些警告和错误。基本选择默认就可以了
它现在这个地方是代码生成的文件,目标文件是TLC,就是这个文件它是决定代码生成是一种什么样的类型生成的。
单击跳转到
autosar还有这个autosar adaptive,这都是与汽车行业相关的。然后ert这个嵌入代码我们目前用的比较多的。目前我们是开发的通用型的这种嵌入代码,那我们就直接点这个ert.tlc就可以了
硬件实现这一块,后面这些设备供应商,设备类型我们基本上就不用选,主要针对的是它,你使用了它官方提供的这么一个demo版或者开发版的时候,你可能才需要配置这些。如果你后面使用了它那个官方提供的开发版和官方提供的一些demo模行,你可以在模型中实现编译下载。
模型引用指的是你有多个模型在同一块编译的时候的一个配置。就比如说现在有AB两个模型,然后A模型引用了模型B模型的一个状态。基本上这一块我们做的项目比较少小的话基本上一个模型就够了。
在生成代码的时候需要调用的一些东西。用一些外部的自定义的这一块代码,或者自定义的这种文件需要引用到这个模型中的时候,我们这地方可以设置它这地方可以设置包含的头文件以及包含的目录。
语言主要是C语言,所以那个C++的话目前我们是使用不到的。下面都是一些自定义的配置,可以根据自己的需求来配置。
生成代码的语言标准是C99,编译过程可以选择仅生成代码或者或者是代码和工具打包。如果你勾选了仅生成代码,它是指生成代码把相关的文件,然后一些编译的文件它会给你忽略掉。如果不勾选的话,它就会生成好多。我建议大家是勾选只仅生成代码这一块。
关于代码和工具打包。如果你把这个选项勾上,它会把你代码和一些生成的必要文件会打包成一个zip文件。这地方你可以写上你压缩包的名字。我们目前是不需要打包的,所以这个地方就不用勾选了。
工具链的话 采用默认的就可以了。
内联和可调 这地方他说的是子系统传输出的传递方式。就对于我们代码中来说,其实就是它传递参数的一个方式。可以说直接是行参传递,也可以通过结构体方式传递。
零初始化,内部数据初始化,它默认都是不需要的。
优化的级别 默认的这个还是比较好的。
最下面这个地方state floor这一块 直接选U8就可以了。因为我们一般也不会超过2个U8类型的最大范围。
可以勾选自动打开报告,或者说生成一些静态代码的指标。比如说我们圈复杂度,最最长路径这些。然后这些这地方模型到代码代码到模型这些都是可以勾选的这这样的话你生成的代码和模型将会是一一对应的。
如果你点击到代码上,它会定位到模型,定位到报告上。如果你在报告上点它,既可以定位到代码,也可以定位到模型,这一块是比较好的。当然这个报告一般是针对我们给别人看我们这个模型的时候生成一个。如果是只是自己开发的话,这个代码报告一般可以跟自己就看一下就可以了。
注释和我们这个C语言是一样的。默认的就可以了,这是注释这一块。
用它默认的就可以了。
然后下面自定义代码,这块代码是说我们代码生成的时候可以包含哪些哪些我们自定义的代码。它和上面这个仿真目标是有点不一样的。仿真目标是针对整个模型的,但是我们这个代码生成它是只针对我们生成代码这一块的这一块我们也可以像仿真目标那个地方一样,加入我们自定义的代码,然后包括原文件都可以自己加的。包括这个地方加的这个黑黑的图文文件,它直接在代码中可以不用编译帮你加进去的。这样就避免了有些文件必须在模型中使用的时候无法使用的情况。
嵌入式代码的话,是不需要附件数的。然后非有限数也不要,负数也不要。绝对时间的话我们可以留着连续时间,也不需要这个只可变大小信号,这都不需要。
代码接口打包:它就指的是你要生成那种static tic的,还是说global的。我们这地方就一般是如果外部没有调用就生成static就行了。
高级参数里面有一些,像这个终止函数,这种我们是不需要的。然后像disabled这种函数我们也不需要的,我们都可以把它勾上,其他我们参与默认就可以了。
我们默认就采用它推荐的就可以了。
软件在环境测试和硬件在环测试,都可以根据自己的需求来选。
代码生成的一个模板,这个模板里面的内容都可以定义的。定义是这个作者是谁,什么时候开发的,哪个版本号
代码布局,就是说全局变量和数据声明以及其他这种文件,你是要放在哪个文件?
代码打包 分为三项,模块化、紧凑和和具有和紧凑具有单独的数据文件。
我们一般来选择这个紧凑。紧凑的话它相当于帮你生成.c和.h,数据定义是在.h中。选择紧凑的话,它数据定义也是在.c的。选这个模块化的话,它会帮你单独生成的一个定义数据类型的文件。
嵌入代码中有些数据类型,保持默认即可。
代码覆盖率的检查