完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
过去数年,关于单内核平台标准化的讨论不计其数,目的是让设计从一家MCU供货商的产品移植到另一家的产品变得容易。有趣的是,所有讨论均从未涉及外设。然而,外设恰恰就是将应用从一家MCU供货商移植至另一家的真正核心。
一切归于外设 工程师在着手新设计之前,通常会先审视一下功能需求。希望系统做什么?用户怎样与之交互? 诸如此类的一些问题。据此决定要采用什么电路以及控制这些电路所需的MCU片内外设。例如,工业级的HMI(人机界面)设备将需要支持LCD、按钮和/或触摸屏,与机器的通信、LED,以及扬声器/蜂鸣器等。所有这些功能将需要MCU上的某些外设,如:CAN控制器用于通信、ADC用于触摸屏及PWM定时器用于蜂鸣器等。外设具有的功能越多,所需的外部电路就越少。在某些情况下,还会减少需要编写的代码量。例如,使用特殊的蜂鸣器模式比为达到同样目的而不得不设置PWM要简单得多。 内核需求通常是显而易见的。虽然内核很重要,但对于设计人员来说,关系不大。事实上,内核必须满足两个基本条件。速度是否足以执行创建最佳用户体检所需的所有软件任务? 是否能高效执行所有任务?只要满足这两点性能要求, 内核的类型无关紧要。 当然,内核还与固件/软件相关。既有代码是工程师必须考虑的一个问题。使用现成代码能节省多少工作量?这个问题并非与内核直接相关,而与外设有关。因为大多数32位MCU代码用C语言编写,因此可重新编译至任何内核。每家 MCU生产商的外设特性及编程模型均特定于其自家的产品,而与所采用的内核无关,这便是代码难以移植的原因所在。 |
|
相关推荐
3个回答
|
|
固件库
为了给工程师提供便利,每家MCU生产商均提供一个固件库,其中包含设置和使用各种MCU片内外设的代码。由于不同厂家实现其外设的方式各不相同,甚至具有不同的特性,将应用程序从一种MCU移植至另一种MCU并非轻而易举。 ARM一直以来都在为简化应用程序的移植努力着,它定义了一种称为Cortex™单片机软件接口标准(CMSIS)的固件抽象层标准。采用Cortex-M系列内核的MCU生产商的固件库均已采纳了这一标准。遗憾的是,这个标准仍不能克服移植外设遇到的困难,对于变量或函数也未制定标准的命名约定。因此,将代码从一种固件库移植到另一种固件库没有捷径,必须做大量工作。事实上,对于在ARM MCU供货商之间移植应用程序,该标准几乎没有什么帮助。毕竟,对于MCU生产商来说,将应用程序轻而易举移植到其他供应商的产品一点好处也没有。 |
|
|
|
设计时考虑可移植性
由于MCU生产商不愿简化其产品到其他供应商产品的可移植性,因此只能由设计工程师来使设计具有可移植性。通过实现一个抽象层,由该层创建硬件(即MCU外设)和应用程序代码之间的标准编程接口即可实现这一点。至少可用以下两种方法: 开发一个中介层或包装器,从而实现在MCU生产商外设库和您的代码之间转换。这可能是最快速高效的解决方案,但会在命令和数据路径中添加较多代码。 定义一个标准的函数和变量命名机制,并将其应用于所有外设库。不必添加代码,但却很费时,具体取决于外设用法的复杂度。 实现移植性是个大工程,贯穿开发过程的始终。除了固件/软件兼容性,还有引脚兼容的问题。将应用从一个MCU供应商的产品移植到另一个往往要重新布置PCB,而且可能还需要不同的外部器件,比如电容和稳压器。 |
|
|
|
总结
无论使用何种内核,在32位MCU***均相当复杂。一切都取决于外设和相关的固件库。每家MCU生产商均提供固件库和应用笔记,尽力使设计过程尽可能地简单。他们也将努力减轻其器件在其系列间移植的工作。但是他们却不愿意使移植到竞争对手的解决方案变得过于容易。这是设计工程师要解决的问题,应该在每个项目开始时评估这样做的成本和好处。 |
|
|
|
只有小组成员才能发言,加入小组>>
1934个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36421 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4928 浏览 1 评论
6109 浏览 1 评论
6819 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4249 浏览 0 评论
653浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
646浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
647浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
736浏览 2评论
848浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 04:44 , Processed in 1.283813 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号