c++ 代码_Simulink之嵌入式C代码生成前言篇

5421f83dee782e6e4b0dc824c4f0a95f.gif

‍‍

总觉得单纯写ISO 26262显得太单调,于是小编拉上好盆友印小怪开启了simulink 之旅。希望能跟更多的朋友一起交流学习,共同进步。趁着周末的大好时光,一起来学习吧! 7c0f468c379e4b0df3d7a8cb0e66e090.png


‍ 从工作到现在已经五年多的时间了,在工作中发现了一个代码神器,有请神器闪亮登场,那就是我们的Simulink。 刚开始用代码生成功能的时候真是一把鼻涕一把泪呀,捣鼓了一周才弄了个一知半解,网上详细介绍代码生成的文章又不多,所以我简单整理了一下代码生成的知识,算是个抛砖引玉,希望有C基础或者想学代码编程的人得到些许知识,若是有错误的地方还请大家批评指正。 刚刚开始学代码生成的时候,看着Simulink生成的代码简直就是在看天文,基本上没有什么可读性,后来了解了配置规则后才发现Simulink真是太强大了。当然也不是真想读C代码,只是让代码看起来更像我们手写的C代码一样。从现在应用现状来看,用的最多的地方是在汽车ECU控制器上,偷偷的告诉你,做嵌入式的程序员们都可以用哦! 为了不增加文章的繁琐性,基本的Simulink操作我就不再赘述,所以看下面文章得有一定的Simulink的基础。 下面进入正题,欣赏代码生成的魅力,先举个最简单的例子,看看Simulink生成的代码什么样。 首先创建一个Test.slx的文件,里面放上如下所示的一个模型并进行个简单的设置如下图:‍

a2b9727a71e0793f862e411093443cca.png 至于为什么配置等后续文章会详细介绍,请耐心等待。点击代码生成按钮 后就生成了报告。下面来简单看一下生成代码的效果,其中最关键的是 Test.c 和 Test.h 文件,这个是咱们最想要的代码了,如下图所示: c9d817d81367c579ac69622ef8aafc17.png 从Test.c文件中找到咱们想要实现y=x*3的这个应用内容: e2df5811236fcc519e08b5d6b1726d29.png cec6ebb653ac60c0117c2887fc9dda22.png 沃德天,这上面又是结构体,又改名字的,不是我想要的呀,想一下要是咱们用C代码去实现这个函数该怎么实现,如下所示: a0a0dd139b22d86682140d6685e50f7a.png 是不是C代码看起来简单明了。现在咱们就一步步配置规则让自动生成的代码和下面手写的C代码一致。 第一步,将函数名字配置成想要的名字,如GetGain3,如下图步骤: c2dd409cff83ecb39f500e0f51acfff5.png 点击代码生成,得到如下: 57f4b96f66fe939826303ec31fc8aa99.png 是不是和咱们平常写的代码一致了。所以生成的代码,一定程度上是可以比拟用C写的哦! 当然会C的人说了,我简单一句话搞定了,为什么用你的模型去生成代码。其实模型有这样几个好处:
  • 一个是测试方面的比如MIL、SIL、PIL测试方面保证代码的质量;

  • 第二个是其生成的代码会符合规范,如MISRA-C 2012等;

  • 第三点就是可读性,图形化的界面比一行行的字母的可读性要好,当设计比较复杂的系统时,模型的优势就逐渐的显现出来了。

本期算是Simulink相关系列文章的开头,我会在后续的文章中继续分享代码生成配置,敬请期待吧!
946bff8c3590b16d1398d038b39b2b9f.png 02f114c8880ce55b83f2ce9588c52d3d.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值