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

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

3天内不再提示

嵌入式Python简介

tr4578 2022-12-28 09:51 次阅读

如果您正在对嵌入式设备进行编程,那么您很可能正在使用 C/C++ 编程语言编写代码。C 最初创建于 20 世纪 70 年代初;然而,直到 1990 年代,嵌入式设备编程才从汇编语言转向高级 C 语言。在接下来的三十年里,C/C++ 凭借其在速度和紧凑性方面的卓越性能,将在嵌入式应用程序中占据主导地位。如今,随着流行的 Python 编程语言以嵌入式为中心的实现的兴起,另一种转变正在出现。

Python 于 1990 年代首次出现,并从那时起在软件开发人员中稳步流行。事实上,在 2020 年,Python 终于在 IEEE Spectrum 的年度编程语言流行度调查中名列第一。最初,Python 作为一种用于测试电子设备的脚本语言在嵌入式开发人员中流行起来。慢慢地,它一直在开发堆栈中向下移动。实际上有多种 Python 实现,其中 CPython 是广泛用于桌面应用程序的参考实现。

PyMiteTiny Python是最早为在微控制器上运行而开发功能降低的 Python 实现的尝试之一。PyMite 只包括一个 VM 和运行时——没有编译器。这意味着它只能运行先由 CPython 编译的字节码。Tiny Python 确实包含一个字节码编译器,但仍然只占用大约 64 KB 的 RAM。两者都基于 Python 2,并且都没有被积极开发。尽管如此,它们确实代表了将 Python 用于嵌入式应用程序的最早尝试。

MicroPython是用于嵌入式开发的 C 编程语言的令人兴奋的替代方案。它将基于桌面的 CPython 语言的几个流行特性带到各种流行的微控制器架构中,包括STM32 板、TI CC3200/WiPy、Teensy 板、Nordic nRF系列、SAMD21、SAMD51、ESP8266ESP32RISC-V,甚至是 Lego头脑风暴 EV3 平台。自 2014 年推出以来,MicroPython 的受欢迎程度稳步上升,反映出 CPython 的总体使用量增加。另一个吸引人的特性是 MicroPython 的源代码是在 GitHub 上的开源许可(MIT 许可)下提供的。

CircuitPython是一个教育和制造商友好的 Python 实现,它本身是 MicroPython 的一个分支。CIrcuitPython 开发支持由Adafruit Industries提供,是其许多微控制器产品的实际语言。目前有超过一百种电路板与 CircuitPython 兼容,大部分基于 Microchip 的 SAMD21/SAMD51 和 Nordic Semiconductor 的nRF52840微控制器。CircuitPython 的一个关键特性是能够简单地将源代码文件 (.py) 拖到兼容的开发板上,这与将文件拖到 USB 闪存驱动器上没有什么不同。不需要编译代码,也不需要访问麻烦的(有时是昂贵的)程序员/调试器。此外,源代码仍然可以在设备上访问,并且可以在任何计算机上打开。这意味着您可以使用简单的文本编辑器从任何计算机下载、编辑和重新编程兼容 CircuitPython 的开发板。

泽林思是一组包含在软件开发工具包 (SDK) 中的工具,适用于物联网 (IoT) 产品的开发人员。他们专注于简化 32 位微控制器(包括 ESP32、ESP8266、ARM Cortex M0+、ARM Cortex M3 和 ARM Cortex M4)与各种物联网云服务提供商(AWS、Azure、Google Cloud Platform、Ubidots、The Things Network)之间的连接). 只需几行 Python 代码,就可以将边缘设备传感器的数据传输到云端进行进一步分析和长期存储。在提供的工具中,命令行界面 (CLI)、Zerynth Studio 集成开发环境 (IDE)、Zerynth 操作系统 (OS) 和 Zerynth 设备管理器;全部适用于 Windows、Mac OS 和 Linux。Zerynth VM 占用了 80KB 的闪存和 5KB 的 RAM。

CPython。单板计算机 (SBC) 是信用卡大小的成熟台式计算机(例如,Raspberry PiBeagleBone)。它们也非常便宜,因此越来越多地用于嵌入式应用程序。当前一代的 SBC 速度足够快,并且有足够的内存和存储空间来运行成熟的 CPython 实现(或通过省略不需要的模块而略微精简的实现)。还有其他实现,例如 Python for ARM Linux,它为基于 ARM 的架构定制了 Python(与 x86/x64 架构相比)。最近,PyPy 等其他实现(基于即时编译器与 CPython 解释器的对比)已移植到 Raspberry Pi 并提供改进,例如更快的速度性能。

开发人员需要记住,Python 编程语言没有单一的“风格”。有许多实现,其中一些是专门为在嵌入式平台上出色执行而构建的。Python 作为专业嵌入式开发领域的主要参与者的未来取决于证明它可以达到或超过 C 的性能。我们可以回顾历史来提供一些见解。毕竟,从汇编语言到 C 语言的转变不是一蹴而就的。通过在 C 宏中插入汇编代码,汇编仍然用于 C 程序的性能关键部分。Python 和 C 可以类似地协同工作。

另一个考虑是微控制器比十年或二十年前的微控制器强大光年。时钟周期已经从以几兆赫兹测量到超过千兆赫兹。曾经以几十千字节为单位的闪存,现在以几兆字节为单位。幸运的是,性能的显着提升并没有伴随着价格的相应上涨。因此,嵌入式应用程序开发人员可以编写更高级别的代码,而不必理会每个时钟周期或内存字节,并且仍然可以生产出响应迅速的高质量产品。

结论

编程语言与口头语言一样,不断发展壮大以响应时代的需求。专门为嵌入式系统构建的 CPython 衍生产品,如 MicroPython 和 CircuitPython,有望成为未来嵌入式开发的主要参与者,因为它们使创建过程民主化。当结合电子硬件的一些基本知识时,嵌入式 Python 语言使人们,无论技能水平如何,都能将物理和数字融合在一起。这种能力开启了几年前难以想象的可能性。在世界各地,可访问的开源编程语言和嵌入式平台让当地社区能够构建本地化、特定于他们的需求、具有成本效益且可持续的工具。难民营,嵌入式 Python 正在帮助让世界变得更美好,一次一行代码。

审核编辑黄昊宇

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

    关注

    5082

    文章

    19104

    浏览量

    304817
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84628
收藏 人收藏

    评论

    相关推荐

    新手怎么学嵌入式?

    新手怎么学嵌入式? 在科技飞速发展的今天,嵌入式技术已经渗透到我们生活的各个角落,从智能手机到智能家居,从汽车电子到医疗设备。对于新手而言,嵌入式技术就像是一座充满神秘和机遇的宝藏,等待着大家去挖掘
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指将人工智能技术应用于嵌入式系统中的一种技术。嵌入式系统是嵌入到其他设备或系统中的计算机系统,通常用于控制、监测或执行特定任务,如智能手机、智能家居设备、智能汽车等中的
    的头像 发表于 12-11 09:23 256次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能

    【「嵌入式系统设计与实现」阅读体验】全书概览与内容简介

    嵌入式系统设计与实现》,瞬间就被吸引了。非常感谢电子发烧友平台提供这次宝贵机会,让我有机会接触到这么多优秀的设计案例。 今天刚收到书籍,接下来让我们一起先大概浏览一下这本书的内容吧! 内容简介 本书
    发表于 12-01 17:05

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件嵌入到某种设备或系统中,以实现特定功能的计算
    的头像 发表于 10-16 10:14 926次阅读

    AMD 面向嵌入式系统推出高能效 EPYC 嵌入式 8004 系列

    AMD 凭借其 EPYC™ 嵌入式处理器不断树立行业标准,为网络、存储和工业应用提供卓越的性能、效率、连接与创新。今天,我们正以第四代 AMD EPYC 嵌入式 8004 系列处理器扩展这一
    发表于 10-11 13:58 714次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备的“大脑”,主要功能是根据需要管理和控制设备
    的头像 发表于 09-30 10:05 451次阅读

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一个复杂的过程,涉及到硬件选择、操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux开发的基本步骤,以及每个步骤的说明。 硬件选择 在开始嵌入式Linux开发
    的头像 发表于 09-02 09:11 479次阅读

    嵌入式系统怎么学?

    、C++或者Python。这些语言在嵌入式系统开发中都被广泛应用。 3、微处理器/微控制器架构:学习常见的微处理器和微控制器架构,如ARM、AVR、PIC等,了解其特性和应用场景。 4、嵌入式系统开发
    发表于 07-02 10:10

    嵌入式主板,你了解多少?

    嵌入式主板,也称为嵌入式计算机主板,是一种专门设计用于嵌入式系统的计算机主板。与台式机和笔记本电脑中使用的常规主板不同,嵌入式主板设计用于集成到更大的电子设备中,例如汽车、医疗设备或自
    的头像 发表于 04-17 15:11 1444次阅读

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的一种解决方案。嵌入式系统是一种为特定应用而设计的计算机系统,它通常包括处理器、内存、外设接口等组件,并且被嵌入到更大的设备或系统中,
    的头像 发表于 03-15 14:29 1243次阅读

    fpga是嵌入式

    FPGA(现场可编程门阵列)不是嵌入式系统,但FPGA在嵌入式系统中有着重要的应用。
    的头像 发表于 03-14 17:19 2282次阅读

    嵌入式人工智能的就业方向有哪些?

    联网ARM开发 NB-IoT开发及实战 七:python工程师,人工智能工程师 python语法基础 python核心编程 基于OpenCV的机器视觉开发 嵌入式人工智能渗入生活的方
    发表于 02-26 10:17

    嵌入式学习步骤

    语言编写。但是,有些嵌入式系统也使用其他编程语言,例如Python或Java。 (3).了解硬件:深入了解您要控制的硬件设备的功能和特性。您需要了解嵌入式系统的处理器、内存、I/O端口、传感器和其他
    发表于 02-02 15:24

    啥是嵌入式嵌入式都有啥?薪资如何?前景如何

    嵌入式系统(Embedded Systems)是一种特殊类型的计算机系统,被嵌入到其他设备或系统中,用于执行特定的任务或控制特定的功能。这些系统通常设计用于特定的应用领域,具有特定的硬件和软件要求
    的头像 发表于 01-17 16:39 920次阅读
    啥是<b class='flag-5'>嵌入式</b>?<b class='flag-5'>嵌入式</b>都有啥?薪资如何?前景如何

    嵌入式处理器简介和种类

    嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的4位处理器,目前仍在大规模应用的8位单片机,到最新的受到广泛青睐的32位,64位嵌入式CPU。
    的头像 发表于 12-26 12:26 1026次阅读