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

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

3天内不再提示

自动生成的代码支持的硬件平台的简介

MATLAB 来源:djl 作者:董淑成 2019-09-17 10:08 次阅读

你们自动生成的代码都支持哪些MCU

这是这几年最经常被问到的几个问题之一了,我向来的回答是:

代码生成工具生成的是标准C代码,支持所有的MCU或者DSP

既然答案如此明确,干嘛还要来写这篇文章?

回答问题前,我们先看看为什么会有这么多人提及这个问题。

M曾经的Target Support Package

我敢说很多人提到这个问题是因为MATLAB曾经有一个的工具箱,叫做Target Support Package,简称TSP,这个产品从MATLAB R2011a开始不再单独销售。不过,对于习惯了汽车行业这种嵌入式软件开发的工程师,这些支持包,可能只能用作过家家了,因为汽车行业的软件是下面这个样子的:

自动生成的代码支持的硬件平台的简介

即便是我们不使用AUTOSAR架构,差别也主要在于是否有RTE上,其他的部分该有的都会有的。

我们再来看一下TSP这个工具包有什么功能,下面这幅图是MATLAB R2012b里面TI C2000的TSP模块库:

自动生成的代码支持的硬件平台的简介

这个模块库里有AD、有数字IO,有PWM输出,有比较寄存器,还有各类通信端口的收发模块等等,我们可以假想有这样一个模型:

自动生成的代码支持的硬件平台的简介

模型中,AD模块有了,在生成的代码中,有读取AD转换数据的C接口函数,AD转换得到的数据经过Algorithm部分的运算,获得期望的PWM输出信号的占空比,后面的PWM模块会根据这个占空比的数值产生PWM信号。

看起来好像非常不错的样子,不过我们想,就AD转换或者PWM输出这类底层驱动软件,对于一个做单片机的工程师来讲,这点工作量并不大,并且,对于同一款单片机,最底层的驱动软件通常非常稳定,不会像应用层软件那样需要频繁变更。

也就是说,TSP给我们节省的时间非常有限。

时间上不能节省太多倒还不是最大的问题。最大的问题是,这部分软件在Simulink环境下没法仿真,如果架构设计不好,这会直接导致整个模型的可验证性变差。

如果为了节省那么一点微不足道的时间,而导致整个模型的可验证性变差,得不偿失。

另外,还有不少客户试图自己开发TSP,这往往连节省微不足道的时间的好处都没了,因为开发TSP也算得上对Simulink做深度定制了,通常需要用户熟悉TLC编程,熟悉S-Function,并且,无论是TLC还是S-Function都没有便利的调试环境,这对于开发以及后期维护TSP都带来了非常大的困难。

所以,我对Simulink模型设计的建议是:

能在Simulink环境下仿真的部分,可以通过Simulink实现,对于单片机底层这类没法在Simulink下仿真的软件,不应该打包到Simulink环境下。

MTSP是否一无是处?

前面我们说过,这个工具从2011年开始已经不再单独销售,但并未寿终正寝。最新版的MATLAB的标准产品中已经看不到这个产品,不过,如果你一定要找,还是可以通过添加硬件支持包的方式找到各式各样的硬件支持包,并且相对以前的TSP,硬件支持包不仅提供了很多MCU的驱动模块,而且还提供了很多热门硬件的支持,比如Arduino,Raspberry Pi等,如下图示:

自动生成的代码支持的硬件平台的简介

对于完全没有嵌入式软件开发经验的大、中学生或者工程师,如果想做嵌入式系统上实现某些算法,而又没有精力去学习嵌入式系统,的确可以借助TSP,通过Simulink实现算法,并最快的做目标处理器上验证这些算法,这也是不错的选择。

但是对于产品开发,TSP在很多行业是行不通的。

M不该有的误解

或许因为TSP的存在,让很多人产生如下误解:

MATLAB没提供TSP的单片机就等于MATLAB代码生成不支持这款单片机

基于模型的嵌入式软件设计一定要有TSP作为支持,没有TSP支持,就没法进行基于模型的嵌入式软件设计

这两种误解是没有道理的,我们应该参照AUTOSAR架构,做应用层软件开发或者策略实现部分的模型开发中使用模型。

如果我们仔细观察一下AUTOSAR的软件架构,我们发现,基础软件部分,除了MCAL层之外,还有ECU 抽象层、协议栈、操作系统等基础软件,并且这部分软件远比MCAL复杂,如果使用TSP,基础软件中除了MCAL之外的软件怎么实现?这是一个问题,不需要答案,只为更加明确TSP做汽车电子产品软件开发中没有价值。

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

    关注

    41

    文章

    3587

    浏览量

    129436
  • 代码
    +关注

    关注

    30

    文章

    4779

    浏览量

    68524
收藏 人收藏

    评论

    相关推荐

    探索设计稿自动生成Flutter代码的技术方案

    作者:京东物流 冷先锋 近年来,随着人工智能和大模型技术的发展,设计稿(UI视图)自动生成代码的技术也在不断进步。本文将探讨几家知名企业在这一领域的探索和实践,包括美团、京东、微软等,以及一些常见
    的头像 发表于 11-08 10:09 907次阅读
    探索设计稿<b class='flag-5'>自动</b><b class='flag-5'>生成</b>Flutter<b class='flag-5'>代码</b>的技术方案

    如何自动生成verilog代码

    介绍几种自动生成verilog代码的方法。
    的头像 发表于 11-05 11:45 287次阅读
    如何<b class='flag-5'>自动</b><b class='flag-5'>生成</b>verilog<b class='flag-5'>代码</b>

    汽车异构硬件平台开发如何进行静态代码分析

    随着汽车软件开发复杂度的提升,异构硬件平台的应用已成为必然趋势。多编译器环境的引入不仅是技术发展的自然产物,更是解决日益增长的功能需求和技术挑战的有效途径。在此背景下,Helix QAC 作为一款
    的头像 发表于 10-09 16:15 508次阅读
    汽车异构<b class='flag-5'>硬件</b><b class='flag-5'>平台</b>开发如何进行静态<b class='flag-5'>代码</b>分析

    万界星空科技AI低代码平台:重塑数字化创新边界

    万界星空科技的AI低代码平台通过可视化开发界面、丰富的组件库和模块库、配置与定制功能、集成与扩展能力、自动化与生成器工具以及智能分析与决策支持
    的头像 发表于 09-28 16:13 251次阅读
    万界星空科技AI低<b class='flag-5'>代码</b><b class='flag-5'>平台</b>:重塑数字化创新边界

    新的 MathWorks 硬件支持支持从 MATLAB 和 Simulink 模型到高通 Hexagon 神经处理单元架构的自动代码生成

    新的硬件支持包不仅无需耗时的手写代码优化和验证,还支持处理器在环测试 MathWorks 今天宣布,推出针对 Qualcomm® Hexagon™ 神经处理单元(NPU)的
    的头像 发表于 09-23 11:59 262次阅读

    AI图像生成公司Midjourney宣布进军硬件领域

    AI图像生成领域的佼佼者Midjourney近日宣布了一项重大战略调整,正式进军硬件领域,标志着这家以创新闻名的公司在技术探索上迈出了新的步伐。通过其官方社交媒体X平台,Midjourney发布了振奋人心的消息,诚邀行业精英加入
    的头像 发表于 08-30 16:24 983次阅读

    国内低代码平台推荐--万界星空科技低代码平台

    代码平台是一种应用程序,它为编程提供图形用户界面,从而以极快的速度开发代码,减少传统编程工作。 这些工具有助于快速开发代码,最大限度地减少手工编码的工作量。这些
    的头像 发表于 07-18 15:39 293次阅读
    国内低<b class='flag-5'>代码</b><b class='flag-5'>平台</b>推荐--万界星空科技低<b class='flag-5'>代码</b><b class='flag-5'>平台</b>

    ISEDA首发!大语言模型生成代码到底好不好使

    在大模型席卷一切、赋能百业的浪潮里,“码农”也没能独善其身。各种代码自动生成的大模型,似乎描绘了一个人人都能像资深工程师一样写代码的美好未来。 但在这个理想成为现实之前,有一个不能回避
    发表于 05-16 13:41 328次阅读
    ISEDA首发!大语言模型<b class='flag-5'>生成</b>的<b class='flag-5'>代码</b>到底好不好使

    Simulink自动生成代码现阶段的学习笔记

    在车载控制器的软件开发中,simulink的身影几乎随处可见,主要是在控制算法和控制逻辑的实现。平时看同事点点点就生成代码了,看起来很简单,但是实际操作起来确各种磕磕绊绊。 下面记录了一下步骤作为现阶段的学习笔记吧。
    的头像 发表于 04-17 10:56 3861次阅读
    Simulink<b class='flag-5'>自动</b><b class='flag-5'>生成</b><b class='flag-5'>代码</b>现阶段的学习笔记

    .sct文件自动生成了一堆代码,并且有warning是什么原因导致的?

    .sct文件自动生成了一堆代码,并且有warning,手动改回去后编译,警告消失,重新编译又自动生成代码
    发表于 03-07 06:39

    在做simulink+tasking自动代码生成时,编译找不到底层文件是为什么?

    在做simulink+tasking自动代码生成时,编译找不到底层文件,将文件添加进去后,会出现RT或NRT等重复定义
    发表于 02-20 08:06

    Cognizant推出支持生成式人工智能的新平台

    Cognizant,全球领先的信息技术服务公司,近日宣布推出一个革命性的平台——Cognizant Flowsource,旨在为企业提供下一代软件工程解决方案。该平台专注于生成式人工智能(gen AI)的应用,致力于加速软件开发
    的头像 发表于 02-03 16:11 785次阅读

    DC2100B/A能不能支持MATLAB/simulink自动代码生成

    1、硬件方面,微控制器是主要有几种,计算能力如何,可以支持类似MPC的算法吗?能不能扩展DSP的控制器? 2、软件方面,能不能支持MATLAB/simulink自动
    发表于 01-11 06:56

    单片机代码自动生成器程序

    单片机代码自动生成器是一种能够帮助开发人员快速生成单片机代码的工具。它利用了现代计算机技术和算法,能够根据用户提供的输入和需求,
    的头像 发表于 01-08 14:12 3161次阅读

    如何禁止vivado自动生成 bufg

    在Vivado中禁止自动生成BUFG(Buffered Clock Gate)可以通过以下步骤实现。 首先,让我们简要了解一下什么是BUFG。BUFG是一个时钟缓冲器,用于缓冲输入时钟信号,使其更稳
    的头像 发表于 01-05 14:31 2159次阅读