它不是唯一可用于进行嵌入式开发的C语言吗?

背景介绍“您打算在下一个项目中使用哪种语言?”如果有人问这样的嵌入式工程师,这似乎有点多余。

它不是唯一可用于进行嵌入式开发的C语言吗?实际上,十年前就是这种情况。

当时,还没有像ARM Cortex-M这样的统一内核可以占据整个国家的一半,而且嵌入式处理器的碎片化非常严重。

大多数MCU性能低下且资源有限。

商业模型通常相对简单。

他们甚至不使用RTOS。

大多数业务逻辑可以通过裸奔来解决。

嵌入式工程师大部分时间都花在了原始工厂的底层驱动程序上。

只有当C如此接近底层时,每个人才能识别出具有极其完整的编译链的多种语言。

随着ARM Cortex-M核心MCU逐渐在市场上占据领先地位,MCU的性能在1990年代中后期一直使用原始工厂提供的API赶上通用CPU的发展,并且逐渐取代寄存器开发方法,同时底层硬件的操作变得相似。

近年来,随着诸如物联网,物联网和人工智能之类的概念变得越来越流行,MCU的业务模型也变得越来越复杂。

各种各样的通信协议栈被塞进去,各种各样的复杂算法被塞进去。

越来越多的非EE出生的程序员和DIY发烧友也开始进入嵌入式开发领域。

市场有需求时就有市场,而Arduino就是在这种背景下诞生的。

一些新开发人员不关心MC ++ U底层硬件的详细信息,而只是想快速实现他们的想法。

Arduino使用C ++逐层打包基础硬件,从而为最终用户提供了一组极为简洁的API。

简洁程度如何?稍作研究,所有中小学生都可以制作出体面的作品。

尽管基于Arduino的API的开发方法使高级嵌入式工程师“看起来不太好”,但它确实掀起了一股变革浪潮。

业界巨头和创新者都已开始梦想拥有更加统一的嵌入式开发方法。

Arm制作了一套基于C ++的mbed框架,采用了类似于Arduino的简单API,并已针对各种Arm平台进行了改编和移植。

这些是一些更传统的尝试,还有一些更激进的极客开发人员,他们认为既然硬件操作已抽象到标准API中,为什么我应该局限于低级C并使C ++极为混乱?为什么我不能使用熟悉的语言来操作MCU?事实证明,这些想法不是幻想。

以下只是一些现代语言MCU操作框架的列表:Python:MicroPythonJavaScript:EspruinoGolang:TinyGoSwift语言简介由于进行了各种新尝试,为什么还要再增加一个Swift?并且当您听到Swift时,您的第一反应可能是“难道这不是Mac和iOS专用的语言吗?”实际上,事实并非如此。

Swift创始人Chris Lattner对Swift的愿景是“统治世界”。

它从一开始就设计成为一体。

系统级编程语言,源代码都是开放的,并且开发和演进由社区领导。

以下只是Swift的部分功能:Swift于2014年发布。

它非常年轻,没有历史负担。

近年来,它广泛吸收了各种编程语言的优势。

没有GC机制的纯编译静态语言。

这是实时系统支持的必要条件。

系统级开发,直接生成相应的机器代码,使用ARC机制实现内存管理,通过小的开销,多样化的代码范例减轻开发人员的精神负担,支持面向对象,面向协议,功能编程的学习曲线流畅,但是作为初学者的第一门编程语言,它的语法优雅,适合具有丰富背景知识和无限发展前景的各种挑剔的程序员。

凭借以上功能,Swift可以说是极少数适用于MCU设备的现代语言之一。

还有另一个Rust,但是Rust的学习曲线非常陡峭。

它喜欢严重地“虐待”治疗。

开发人员确保代码的正确性,这违背了我们简化MCU应用程序层编程的初衷。

其他大多数现代语言要么具有在嵌入式语言中绝对不可接受的GC机制,要么是解释型语言,效率极低

联系方式

自1984年起,久尹开始研发并制造质量可靠的电子元件及相关设备 并以创新的设计技术在机械设备上增加良好的使用者界面,因此成为全球被动零件领域的知名设备制造商。 久尹一直凭借着诚实、负责与积极的心态去克服各项挑战,让团队得以建立核心能力与价值。久尹的团队拥有机械设计技术、实际的全球性代工经验、优质的概念以及与国际市场的交流及互动能力。这些竞争优势为久尹及其所有的合作伙伴提供了亮丽的未来,并能够在多变的环境与市场下继续保持领先地位。

查看详情

在线咨询