嵌入式开发:使用MicroPython进行实时软件开发

liftword2周前 (12-20)技术文章23

  虽然像Ada和C++这样的语言已经在某些圈子里获得了一些采用,但是在很大程度上,嵌入式软件仍然被过程化的和危险的C编程语言所支配。然而,一个有趣的趋势开始将Python移植到微控制器上。最近,Python 3.5端口,即MicroPython,在业余爱好者和专业嵌入式开发人员中间越来越受欢迎和采用。

  MicroPython 组织将 MicroPython 描述为“针对在微控制器上运行而优化的 Python 3 编程语言的精简和快速实现”。 MicroPython 在裸机上运行,并使用称为 pyb 的自定义类来访问主机微控制器的低级外设。 pyb 类为开发人员提供了对中断、定时器、LED、ADC、PWM、I2C、SPI 和 CAN 等外设的抽象访问。 对于觉得这些对象无法对微控制器提供足够控制的开发人员,还有一个 C API 可用于遍历抽象并直接访问微控制器寄存器。

  已经存在许多不同的MicroPython端口,但是主要的旗舰运行在PyBoard开发平台。PyBoard基于STM32F405RG微控制器,内置一个运行频率为168 MHz的ARM Cortex-M4内核和一个硬件浮点加速器。微控制器有1MB的闪存和192 kB的RAM。如果1 MB的闪存空间不够,嵌入式开发人员可以使用外部高密度微型SD卡来存储Python脚本。

  MicroPython为开发人员提供了一种易于使用、人类可读的编程语言,它抽象出了硬件层,并允许开发人员专注于应用程序。Python长期以来一直是一种流行的可移植编程语言,以其解释性语言特性和简单的学习曲线而闻名。对Python开发人员的需求一直在稳步增长,这种语言已经在许多行业和技术领域得到了应用。Python本身的可移植性允许在目标硬件可用于测试之前很久就开发和测试算法。

  开发人员也不应该忘记Python不仅仅是一种脚本语言,还是一种面向对象的编程语言。面向对象的编程技术可以用来创建可移植、可维护、模块化和可扩展的软件。

  

  MicroPython 的有趣之处在于它遵循 MIT 软件许可证,并且可以在 github 上免费获得用于移植和修改。嵌入式开发人员选择 STM32F401RE 等功能稍差的 MCU 将成本减半(连同时钟速度和一些其他功能),同时仍保持 MicroPython 系统的完整性。 更便宜的 MCU 的 C 语言软件开发成本可能无法应对匹配 MicroPython 的挑战。

  MicroPython能与C竞争或取代C吗?当然,有充分的理由向更高级的面向对象编程语言发展。然而,总体开发成本仍然是一个灰色地带,尤其是对于高容量的项目。

  毫无疑问,有一点是肯定的:嵌入式软件开发人员迫切需要新的工具来帮助他们在21世纪的嵌入式系统设计的泥潭中导航。MicroPython可能只是嵌入式开发人员一直在寻找的工具之一。


相关文章

python能做嵌入式吗 python 嵌入

近些年来Python非常流行,Python是一种面向对象的解释型计算机程序设计语言,Python语法简洁清晰,易读性以及可扩展性,Python具有丰富和强大的库,能够把用其他语言制作的各种模块(尤其是...

嵌入式开发:嵌入式系统中Python与C/C++的比较

C/C++编程语言在嵌入式系统编程中占据主导地位,尽管它们有许多缺点。另一方面,Python有许多优点,使其成为嵌入式开发的优秀语言。让我们看看每一个利弊,以及为什么你应该考虑Python作为嵌入式编...

用MicroPython设计嵌入式系统的利弊

长期以来,C/C++编程语言一直主导着嵌入式开发系统行业,很少有其他语言能够站稳脚跟。虽然Java和Ada等语言已经尝试过了,但Python这种语言的普及率不仅在上升,而且在相当长的一段时间内已经进入...

Python嵌入版 Python嵌入版安装pandas

Python嵌入版1.什么是Python嵌入版Python嵌入版(Embedded Python)是将Python解释器集成到另一个程序中的形式,使得可以在程序中调用和执行Python代码。主要的Py...

嵌入式开发用什么语言?为什么用C语言,不用其他语言?

首先什么是嵌入式? 以计算机应用为核心,软硬件可裁剪的专用计算机系统,对功耗,体积,成本,可靠性有要求的系统。 嵌入式为什么用C语言? 嵌入式最核心的技术是用到了移植操作系统。嵌入式开发最核心的是操作...

嵌入式语言都有哪些 嵌入式软件语言

嵌入式系统是一种特定用途的计算机系统,为了适应特定的硬件平台和任务需求,通常需要使用专门的嵌入式语言进行编程和开发。嵌入式语言具有简洁、高效和针对性强的特点,适合于在资源受限的嵌入式环境中使用。我来介...