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

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

3天内不再提示

如何在32位MCU平台间移植

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-08-25 16:25 次阅读

过去数年,关于单内核平台标准化的讨论不计其数,目的是让设计从一家MCU供货商的产品移植到另一家的产品变得容易。有趣的是,所有讨论均从未涉及外设。然而,外设恰恰就是将应用从一家MCU供货商移植至另一家的真正核心。

一切归于外设

工程师在着手新设计之前,通常会先审视一下功能需求。希望系统做什么?用户怎样与之交互? 诸如此类的一些问题。据此决定要采用什么电路以及控制这些电路所需的MCU片内外设。例如,工业级的HMI(人机界面)设备将需要支持LCD、按钮和/或触摸屏,与机器的通信LED,以及扬声器/蜂鸣器等。所有这些功能将需要MCU上的某些外设,如:CAN控制器用于通信、ADC用于触摸屏及PWM定时器用于蜂鸣器等。外设具有的功能越多,所需的外部电路就越少。在某些情况下,还会减少需要编写的代码量。例如,使用特殊的蜂鸣器模式比为达到同样目的而不得不设置PWM要简单得多。

内核需求通常是显而易见的。虽然内核很重要,但对于设计人员来说,关系不大。事实上,内核必须满足两个基本条件。速度是否足以执行创建最佳用户体检所需的所有软件任务? 是否能高效执行所有任务?只要满足这两点性能要求, 内核的类型无关紧要。

当然,内核还与固件/软件相关。既有代码是工程师必须考虑的一个问题。使用现成代码能节省多少工作量?这个问题并非与内核直接相关,而与外设有关。因为大多数32位MCU代码用C语言编写,因此可重新编译至任何内核。每家 MCU生产商的外设特性及编程模型均特定于其自家的产品,而与所采用的内核无关,这便是代码难以移植的原因所在。

固件库

为了给工程师提供便利,每家MCU生产商均提供一个固件库,其中包含设置和使用各种MCU片内外设的代码。由于不同厂家实现其外设的方式各不相同,甚至具有不同的特性,将应用程序从一种MCU移植至另一种MCU并非轻而易举。

ARM一直以来都在为简化应用程序的移植努力着,它定义了一种称为Cortex™单片机软件接口标准(CMSIS)的固件抽象层标准。采用Cortex-M系列内核的MCU生产商的固件库均已采纳了这一标准。遗憾的是,这个标准仍不能克服移植外设遇到的困难,对于变量或函数也未制定标准的命名约定。因此,将代码从一种固件库移植到另一种固件库没有捷径,必须做大量工作。事实上,对于在ARM MCU供货商之间移植应用程序,该标准几乎没有什么帮助。毕竟,对于MCU生产商来说,将应用程序轻而易举移植到其他供应商的产品一点好处也没有。

设计时考虑可移植性

由于MCU生产商不愿简化其产品到其他供应商产品的可移植性,因此只能由设计工程师来使设计具有可移植性。通过实现一个抽象层,由该层创建硬件(即MCU外设)和应用程序代码之间的标准编程接口即可实现这一点。至少可用以下两种方法:

开发一个中介层或包装器,从而实现在MCU生产商外设库和您的代码之间转换。这可能是最快速高效的解决方案,但会在命令和数据路径中添加较多代码。

定义一个标准的函数和变量命名机制,并将其应用于所有外设库。不必添加代码,但却很费时,具体取决于外设用法的复杂度。

实现移植性是个大工程,贯穿开发过程的始终。除了固件/软件兼容性,还有引脚兼容的问题。将应用从一个MCU供应商的产品移植到另一个往往要重新布置PCB,而且可能还需要不同的外部器件,比如电容和稳压器。

总结

无论使用何种内核,在32位MCU供应商的产品间移植均相当复杂。一切都取决于外设和相关的固件库。每家MCU生产商均提供固件库和应用笔记,尽力使设计过程尽可能地简单。他们也将努力减轻其器件在其系列间移植的工作。但是他们却不愿意使移植到竞争对手的解决方案变得过于容易。这是设计工程师要解决的问题,应该在每个项目开始时评估这样做的成本和好处。
审核编辑:彭菁

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

    关注

    172

    文章

    5849

    浏览量

    171909
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16992

    浏览量

    350310
  • 控制器
    +关注

    关注

    112

    文章

    16203

    浏览量

    177404
  • 代码
    +关注

    关注

    30

    文章

    4748

    浏览量

    68353
收藏 人收藏

    评论

    相关推荐

    芯科科技推出新的8MCU系列产品,扩展其强大的MCU平台

    科技”,NASDAQ:SLAB),今日宣布推出新的8微控制器(MCU)系列产品,该系列MCU针对价格和性能进行了优化,进一步扩展了芯科科技强大的MCU开发
    发表于 11-21 15:20 845次阅读
    芯科科技推出新的8<b class='flag-5'>位</b><b class='flag-5'>MCU</b>系列产品,扩展其强大的<b class='flag-5'>MCU</b><b class='flag-5'>平台</b>

    32MCU平台移植

    过去数年,关于单内核平台标准化的讨论不计其数,目的是让设计从一家MCU供货商的产品移植到另一家的产品变得容易。有趣的是,所有讨论均从未涉及外设。然而,外设恰恰就是将应用从一家MCU供货
    发表于 07-02 08:17

    mcu和编译器移植

    1、如果可以的话少用库函数,便于不同的mcu和编译器移植 2、选择合适的算法和数据结构 应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。将比
    发表于 11-23 08:33

    何在AT32F系列MCU上使用FreeRTOS

    本指导手册描述了如何在AT32F系列MCU上使用FreeRTOS。FreeRTOS是一款开源的嵌入式实时操作系统,目前在各种嵌入式应用中应用广泛。本指导手册包括FreeRTOS系统移植
    发表于 10-24 07:46

    8MCU如何升级至32MCU

    8MCU如何升级至32MCU   目前的MCU市场分为三个部分, 8、16
    发表于 04-16 14:19 2519次阅读
    8<b class='flag-5'>位</b><b class='flag-5'>MCU</b>如何升级至32<b class='flag-5'>位</b><b class='flag-5'>MCU</b>

    STM32 系列MCU 不同型号的移植步骤解析

    STM32 系列MCU 不同型号的移植
    的头像 发表于 01-10 10:45 3w次阅读
    STM32 系列<b class='flag-5'>MCU</b> 不同型号的<b class='flag-5'>移植</b>步骤解析

    VSF MCU的基本架构移植技巧浅析

    VSF的MCU移植包括2部分,1是基本构架,2是外设驱动移植。这里先讲一下基本构架的移植
    发表于 10-08 15:07 2905次阅读

    【国产MCU移植移植RT-Thread到国产芯片HC32F460PETB

    【国产MCU移植移植RT-Thread到国产芯片HC32F460PETB
    发表于 11-23 18:06 37次下载
    【国产<b class='flag-5'>MCU</b><b class='flag-5'>移植</b>】<b class='flag-5'>移植</b>RT-Thread到国产芯片HC32F460PETB

    【国产MCU移植移植RT-Thread到国产芯片FM33LC026

    【国产MCU移植移植RT-Thread到国产芯片FM33LC026
    发表于 11-30 16:51 22次下载
    【国产<b class='flag-5'>MCU</b><b class='flag-5'>移植</b>】<b class='flag-5'>移植</b>RT-Thread到国产芯片FM33LC026

    AN023 如何在GD平台移植Letter shell

    AN023 如何在GD平台移植Letter shell
    发表于 02-27 18:25 1次下载
    AN023 如<b class='flag-5'>何在</b>GD<b class='flag-5'>平台</b><b class='flag-5'>移植</b>Letter shell

    8MCU历久不衰的秘诀何在

    近日,意法半导体(ST)正式推出32STM32C0 MCU,并明确指出将用于“取代”8MCU
    的头像 发表于 04-17 09:34 1094次阅读

    何在AT32 MCU上使用FPU功能

    何在AT32 MCU上使用FPU功能
    的头像 发表于 11-01 17:18 4018次阅读
    如<b class='flag-5'>何在</b>AT32 <b class='flag-5'>MCU</b>上使用FPU功能

    从8AVR到32SAM D21 MCU的应用程序移植

    电子发烧友网站提供《从8AVR到32SAM D21 MCU的应用程序移植.pdf》资料免费下载
    发表于 09-20 11:41 1次下载
    从8<b class='flag-5'>位</b>AVR到32<b class='flag-5'>位</b>SAM D21 <b class='flag-5'>MCU</b>的应用程序<b class='flag-5'>移植</b>

    从8PIC18F到32SAM D21 MCU的应用程序移植

    电子发烧友网站提供《从8PIC18F到32SAM D21 MCU的应用程序移植.pdf》资料免费下载
    发表于 09-20 11:22 0次下载
    从8<b class='flag-5'>位</b>PIC18F到32<b class='flag-5'>位</b>SAM D21 <b class='flag-5'>MCU</b>的应用程序<b class='flag-5'>移植</b>

    STM8S和STM32 MCU:一致的8/32产品线实现轻松移植

    电子发烧友网站提供《STM8S和STM32 MCU:一致的8/32产品线实现轻松移植.pdf》资料免费下载
    发表于 09-21 11:33 0次下载
    STM8S和STM32 <b class='flag-5'>MCU</b>:一致的8/32<b class='flag-5'>位</b>产品线实现轻松<b class='flag-5'>移植</b>