0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

simulink之嵌入式C代码生成

汽车电子工程知识体系 来源:汽车电子硬件设计 作者:汽车电子硬件设计 2020-10-10 11:02 次阅读

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

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

至于为什么配置等后续文章会详细介绍,请耐心等待。点击代码生成按钮后就生成了报告。下面来简单看一下生成代码的效果,其中最关键的是Test.c和Test.h文件,这个是咱们最想要的代码了,如下图所示:

从Test.c文件中找到咱们想要实现y=x*3的这个应用内容:

沃德天,这上面又是结构体,又改名字的,不是我想要的呀,想一下要是咱们用C代码去实现这个函数该怎么实现,如下所示:

是不是C代码看起来简单明了。现在咱们就一步步配置规则让自动生成的代码和下面手写的C代码一致。 第一步,将函数名字配置成想要的名字,如GetGain3,如下图步骤:

点击代码生成,得到如下:

是不是和咱们平常写的代码一致了。所以生成的代码,一定程度上是可以比拟用C写的哦! 当然会C的人说了,我简单一句话搞定了,为什么用你的模型去生成代码。其实模型有这样几个好处:

一个是测试方面的比如MIL、SIL、PIL测试方面保证代码的质量;

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

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

责任编辑:YYX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Simulink
    +关注

    关注

    22

    文章

    513

    浏览量

    61572
  • C代码
    +关注

    关注

    1

    文章

    89

    浏览量

    14177

原文标题:Simulink之嵌入式C代码生成-前言篇

文章出处:【微信号:QCDZYJ,微信公众号:汽车电子工程知识体系】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何成为一名嵌入式C语言高手?

    如何成为一名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是嵌入式系统开发中最常用的编程语言之一。成为一名
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    如何成为一名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是嵌入式系统开发中最常用的编程语言之一。成为一名
    发表于 03-25 14:12

    嵌入式工程师需要掌握哪些技术?

    驱动程序、操作系统以及与硬件交互的代码。对于嵌入式系统来说,效率和资源利用率是至关重要的,因此,掌握C/C++编程技巧是入行嵌入式的基础。
    发表于 03-04 16:38

    嵌入式学习步骤

    开发。 嵌入式学习步骤总结如下: (1).确定目标平台:选择适合您要开发的嵌入式系统的硬件平台。这取决于您要控制的设备以及您需要执行的任务。 (2).选择编程语言:嵌入式系统通常使用C
    发表于 02-02 15:24

    嵌入式开发学习的十三法则分享

    的“ 初始敏感性” 对于其“ 最终计算结果” 的影响就变得微乎其微了。 二、实时性法则 嵌入式系统的计算结果,不仅依赖于系统的逻辑运算正确性,而且也依赖于这个运算结果的计算时间。 三、资源
    发表于 12-21 06:32

    simulink自动生成ROS代码

    当我们用simulink完成控制程序的搭建后,我们期望下一次可以直接对ROS进行控制,而不是每次都需要启动matlab和simulink,因此我们可以使用simulink代码
    的头像 发表于 11-15 17:53 351次阅读
    <b class='flag-5'>simulink</b>自动<b class='flag-5'>生成</b>ROS<b class='flag-5'>代码</b>

    一般在什么情况下需要用到simulink

    使用simlink生成嵌入式代码,一般在什么情况下需要用到simulinksimulink的教程,谁有提供一下
    发表于 11-06 08:06

    利用Simulink自动生成STM32串口代码

    功能:利用Simulink自动生成STM32串口代码,在Keil中编译后直接下载到主芯片,实现串口通讯的功能。
    的头像 发表于 10-25 17:04 1051次阅读
    利用<b class='flag-5'>Simulink</b>自动<b class='flag-5'>生成</b>STM32串口<b class='flag-5'>代码</b>

    Simulink模型测试、C/C++代码测试,都有喔#嵌入式软件测试技术

    嵌入式软件代码
    北汇信息POLELINK
    发布于 :2023年08月24日 09:59:39

    Arm编译器嵌入式FuSa 6.16.2版LTS用户指南

    架构的基础上开发的。 因此,针对嵌入式FUSA 6的ARM编译器进行了调整,以生成适用于从小型传感器到64位设备的嵌入式裸机应用的高效代码。 用于
    发表于 08-18 06:42

    MBD的Simulink使用技巧:详解代码生成中的模型与代码(2)

    上一篇文章中提到,生成嵌入式代码,必须选择定步长求解器。实际中,生成嵌入式代码几乎不会使用
    的头像 发表于 07-13 15:13 2991次阅读
    MBD的<b class='flag-5'>Simulink</b>使用技巧:详解<b class='flag-5'>代码</b><b class='flag-5'>生成</b>中的模型与<b class='flag-5'>代码</b>(2)

    MBD的Simulink使用技巧:Simulink代码生成的基本概念(1)

    MATLAB/Simulink中一共提供三个代码生成的工具
    的头像 发表于 07-13 15:11 1417次阅读
    MBD的<b class='flag-5'>Simulink</b>使用技巧:<b class='flag-5'>Simulink</b><b class='flag-5'>代码</b><b class='flag-5'>生成</b>的基本概念(1)

    如何构建我自己的嵌入式C编译器?

    只是为了获得如何构建我自己的嵌入式 C 编译器的知识,如预处理、汇编、链接器、生成 Hex 文件、elf 文件、映射文件。 任何有用的链接可用? 我是嵌入式软件工程师,并且具有
    发表于 06-08 08:10

    S32K144的MBD工具箱,使用Simulink进行仿真时调用的库与生成嵌入式代码时调用的静态库不同?

    我在使用NXP的MBDT时,不仅可以在Simulink中使用它的模块进行仿真,还可以生成S32K的代码,然后在MBDT的安装目录下看到三个库文件。令我困扰的是,使用 Simulink
    发表于 06-01 06:55

    Simulink自动代码生成电机控制:基于Keil软件集成

    嵌入式软件开发包含应用层和底层,目前基于模型的开发软件架构总结为以下几种: 1.应用层全模型生成,底层手写代码 这种方法比较灵活,底层代码可以找芯片厂的Demo程序,也可以自己开发
    发表于 05-05 14:51 8次下载
    <b class='flag-5'>Simulink</b>自动<b class='flag-5'>代码</b><b class='flag-5'>生成</b>电机控制:基于Keil软件集成