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

    文章

    549

    浏览量

    65432
  • C代码
    +关注

    关注

    1

    文章

    90

    浏览量

    15097

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32嵌入式软件开发的必备知识

    嵌入式软件开发作为计算机科学和电子工程的交叉领域,要求开发人员具备一系列的专业知识和技能。 而基于CW32的嵌入式软件开发必备知识包括以下部分: 1 、编程语言 熟练掌握CC++
    发表于 11-28 07:48

    2025年最佳的嵌入式编程语言有哪些呢?

    嵌入式系统是现代科技不可或缺的一部分。它们存在于家用电器、汽车、住宅、医院、商店等各个领域。它们与我们的社会紧密相连。选择合适的语言来构建嵌入式系统对于成功至关重要。那么,2025年最佳的嵌入式编程
    的头像 发表于 11-14 10:27 904次阅读
    2025年最佳的<b class='flag-5'>嵌入式</b>编程语言有哪些呢?

    嵌入式C/C++回归测试四大最佳实践(附自动化测试工具TESSY使用教程)

    嵌入式开发中,一次微小的代码改动都可能引发“蝴蝶效应”,如何守护系统的稳健?推荐专业的自动化测试工具#TESSY,源自戴姆勒-奔驰,是嵌入式C/C
    的头像 发表于 10-31 14:21 186次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b>/<b class='flag-5'>C</b>++回归测试四大最佳实践(附自动化测试工具TESSY使用教程)

    使用Simulink自动生成浮点运算HDL代码(Part 1)

    引言 想要实现浮点运算功能,如果自己写Verilog代码,需要花费较多的时间和精力。好在Simulink HDL Coder工具箱提供了自动代码生成技术。下图展示了HDL Coder如
    发表于 10-22 06:48

    嵌入式需要掌握哪些核心技能?

    : 1)C语言与底层编程 核心地位:C语言是嵌入式开发的基石,需精通指针操作、内存管理、位运算,直接操控硬件资源。 延伸技能:C++用于复杂项目架构设计,汇编语言优化底层性能(如启动
    发表于 10-21 16:25

    嵌入式达到什么水平才能就业?

    工具定位问题具备嵌入式软件模块化设计能力:能按功能划分代码模块,编写规范的头文件与源文件,实现模块间低耦合调用会使用Git 进行版本管理:能提交代码、解决冲突、回滚版本,熟悉敏捷开发流程中需求拆解与任务分配逻辑
    发表于 09-15 10:20

    入行嵌入式应该怎么准备?

    知识: 一、C/C++编程C/C++是嵌入式系统开发中最常用的编程语言。熟练掌握C/
    发表于 08-06 10:34

    Linux嵌入式和单片机嵌入式的区别?

    : 单片机嵌入式 :开发环境相对简单,通常使用C语言或汇编语言进行编程,开发工具包括Keil、IAR等。 Linux嵌入式 :开发环境较为复杂,除了需要掌握C语言,还需要了解Lin
    发表于 06-20 09:46

    ETAS全新的嵌入式AI解决方案

    “将训练后的AI神经网络模型,自动化生成安全且高效的C代码,用于嵌入式系统” ,近日ETAS携全新的智能化工具Embedded AI Coder亮相2025上海国际车展。
    的头像 发表于 05-07 11:43 1582次阅读
    ETAS全新的<b class='flag-5'>嵌入式</b>AI解决方案

    Python在嵌入式系统中的应用场景

    你想把你的职业生涯提升到一个新的水平?Python在嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于CC++语言,Python的优势在于其简洁的语法、丰富的
    的头像 发表于 03-19 14:10 1198次阅读

    嵌入式主板选型与应用指南

    嵌入式主板是专为嵌入式系统设计的核心硬件平台,广泛应用于工业控制、物联网、医疗设备等领域。以下是关于嵌入式主板的详细介绍:1.嵌入式主板的核心特点紧凑尺寸:通常采用小型化设计(如Min
    的头像 发表于 02-27 14:53 937次阅读
    <b class='flag-5'>嵌入式</b>主板选型与应用指南

    嵌入式系统中的代码优化与压缩技术

    在当今数字化时代,嵌入式系统广泛应用于各个领域,从智能家居设备到工业控制系统,从汽车电子到可穿戴设备,它们无处不在。而在嵌入式系统开发中,代码优化与压缩技术至关重要,直接影响着系统的性能、成本
    发表于 02-26 15:00

    如何提高嵌入式代码质量?

    嵌入式代码的质量是至关重要的。本文将探讨如何通过有效的开发方法和工具来提高嵌入式代码的质量,以确保系统的可靠性和可维护性。 理解嵌入式
    发表于 01-15 10:48

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对嵌入式主板的基本概念、构成部分、
    的头像 发表于 01-13 16:30 1187次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    新手怎么学嵌入式?

    的运行机制。例如,了解数据结构中的链表、栈和队列,对于在嵌入式编程中管理数据非常有帮助。 2. 选择合适的编程语言 嵌入式开发中常用的编程语言有 CC++。
    发表于 12-12 10:51