我是靠谱客的博主 忧虑啤酒,最近开发中收集的这篇文章主要介绍autocoder自动代码生成器_1.simulink coder与embeded coder代码生成的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
我们来看一下mathworks公司的c代码生成工具,可以看到我们有三个c代码生成工具,embeded coder,Simulink coder,matlab coder,而我们今天研讨会的主题是和embeded coder相关,因为我们要讨论生成嵌入式代码,并且我们主要是从simulink生成嵌入式代码,所以我们不仅需要embeded coder,还需要similink coder,embeddedcoder 是依赖于matlab coder以及simulinkcoder的,我们也可以用simulinkcoder生成代码,但这样是没办法用于嵌入式系统的。我门如果只有matlab coder,要生成嵌入式代码,那么我们只需要有matlab coder,以及embeded coder即可
好的,下面我们来看一下今天我们要涉及的主要内容
我首先会给大家做个演示,先使用simulink coder以及embeded coder生成代码,在用embeded coder生成代码时,会有以下几个方面,使用数据对象进行数据管理,我们会去进行代码生成优化设置,我们会去控制模型级算法函数的原型,同时我们还介绍子系统算法函数以及函数生成文件的控制,接下来我们会介绍如何从自定义库生成可重用的代码,再往下我们会介绍平台化模块的代码生成,最后我们会介绍代码的等效性测试。也就是我们常说的sl测试和pl测试。
我们先打开matlab,我们先看一下这个简单的demo
我这边有两个输入一个输出,输入输出的关系是这样的,两个输入先求和,再乘上一个k,那么这样一个模型来生成代码,我们先用simulinkcoder生成代码去看一下,
首先我们需要对k做一个定义,k=2,下面我们就可以用来进行代码生成了,我们先要设置一下配置。
对求解器进行设置,我们把求解器类型设置为定步长求解器,求解器设置为离散求解器,因为我们的计算机控制系统是一个离散的控制系统,并且我们的控制算法一般是通过定时中断和定时调度去完成的。我们把这个算法设置为10ms调度一次,
接下来再去做一个代码生成设置,主要是把系统目标文件设置为grt.tlc,这个呢就是使用代码生成工具时使用simulink coder,
这边有一个report,我会把这两个report勾勾给勾上去,这样的话在我们代码生成之后会自动生成一个report出来,让我门看到我们生成的代码,那么做完这些设置之后,我就可以按下这个按钮,来自动生成代码了。当然这个按钮我们也可以通过快捷方式去实现,在simulink窗口下按下ctrl+B实现。就可以帮助我们build这个模型去生成代码
我们看到这个简单的模型有这么多代码,模型的算法实现文件在这个模型里,这个文件里有一个step函数,这里面呢就实现了我们的算法。所以很多人在做到这个步骤的时候得出一个结论,simulink生成的代码嵌入式系统是没办法用的。的确,用simulinkcoder生成代码嵌入式系统是没法用的。
那么如果我们想生成嵌入式代码我们需要去做什么样地工作。我们应该选择embededcoder生成代码,而不应该是使用simulink coder生成代码。我们需要把系统目标文件设置为ert.tlc或者是由ert.tlc派生出来的文件。比如autosar.tlc就是从ert.tlc派生出来的。我们选择这个ert.tlc之后呢,我们同样按一下generate coder看看生成的代码,看看有什么不一样。
我们现在看生成的代码从文件数量上就少了很多是吧。然后我们看这个模型的实现文件,同样我们发现一个step函数,step函数只有一行代码,完整的表达了我们的算法实现,这一块代码是非常简洁的,应该是可以在单片机或者dsp上去使用的。
当然可能很多人心里会有疑问,我希望通过一些设置变成z=(x+y)*k这样的形式。我可以定义我的函数变量的名字,我可以定义我的参数的名字。让他生成一个我们更容易接受的更好看的一个代码。如果是手写的话,我们可能也会写这样的代码是吧。我们找到simulink模型,先来定义一下信号,在信号线上双击,输入信号名x,y,z,这样就是定义信号的信号名。有了这样一个信号名之后,我们希望看到这个生成的代码是这个样子的z=(x+y)*k。那么怎么去实现呢,这就是我们接下来介绍的数据管理。
最后
以上就是忧虑啤酒为你收集整理的autocoder自动代码生成器_1.simulink coder与embeded coder代码生成的区别的全部内容,希望文章能够帮你解决autocoder自动代码生成器_1.simulink coder与embeded coder代码生成的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复