电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1709|回复: 1
收起左侧

嵌入式自学可能吗_自动生成的代码支持的硬件平台的简介

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2020-7-23 12:10:13 | 显示全部楼层 |阅读模式
嵌入式自学可能吗_自动生成的代码支持的硬件平台的简介,   

你们自动生成的代码都支持哪些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做汽车电子产品软件开发中没有价值。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表