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 正在帮助让世界变得更美好,一次一行代码。

审核编辑黄昊宇

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

    关注

    5188

    文章

    20174

    浏览量

    329253
  • python
    +关注

    关注

    57

    文章

    4860

    浏览量

    89647
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式与FPGA的区别

    \"嵌入式开发门槛低、就业广,适合转行;FPGA技术深、薪资高,但要求学历和数学功底。选哪个?看你的基础和职业目标。\" ⭕我们先来明白下两者区别在哪? ✅1、嵌入式:分两部分
    发表于 11-20 07:12

    2025年最佳的嵌入式编程语言有哪些呢?

    嵌入式系统是现代科技不可或缺的一部分。它们存在于家用电器、汽车、住宅、医院、商店等各个领域。它们与我们的社会紧密相连。选择合适的语言来构建嵌入式系统对于成功至关重要。那么,2025年最佳的嵌入式编程
    的头像 发表于 11-14 10:27 945次阅读
    2025年最佳的<b class='flag-5'>嵌入式</b>编程语言有哪些呢?

    嵌入式达到什么水平才能就业?

    很多想入行嵌入式的朋友,都在纠结:自己得学到啥水平,才能找到工作?要是现在还没达到这种水平/刚想入行嵌入式,现在开始学还来得及嘛?别慌,今天就来好好聊聊~ 嵌入式就业,需要达到这些水平: (一
    发表于 09-15 10:20

    盘点嵌入式就业所需要的技能有哪些?

    ,把握未来的职业机遇。 1.智能汽车行业: - 熟悉嵌入式编程语言,如C/C++、Python等。 - 掌握嵌入式系统设计与开发流程,了解汽车电子控制系统的基本原理。 - 具备良好的数据结构和算法
    发表于 08-11 15:43

    Linux嵌入式和单片机嵌入式的区别?

    Linux嵌入式与单片机嵌入式在多个方面存在显著的区别,以下是详细的比较和归纳: 一、基本概念 1. Linux嵌入式: 定义:将Linux操作系统运行在嵌入式设备上的一种配置。
    发表于 06-20 09:46

    嵌入式开发入门指南:从零开始学习嵌入式

    随着物联网、智能硬件的发展,嵌入式开发成为热门技能之一。以下将为初学者提供一份详细的嵌入式开发入门指南,涵盖学习路径、必备工具、推荐资源等内容。 1. 嵌入式系统的定义与应用嵌入式系统
    发表于 05-15 09:29

    飞凌嵌入式2025嵌入式及边缘AI技术论坛圆满结束

    飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式及边缘AI技术的盛宴!
    的头像 发表于 04-28 13:57 3864次阅读
    飞凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及边缘AI技术论坛圆满结束

    飞凌嵌入式2025嵌入式及边缘AI技术论坛圆满结束

    4月22日下午,备受瞩目的飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式
    的头像 发表于 04-27 11:55 632次阅读
    飞凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及边缘AI技术论坛圆满结束

    嵌入式适合自学吗?

    嵌入式适合自学吗?其实并不建议大家自学嵌入式,主要有以下原因。 一)学习难度大 1)知识体系复杂:嵌入式系统是一个复杂的领域,涉及到计算机、电子、通信等多学科知识,需要学习者具备扎实的软硬件
    发表于 04-27 09:54

    飞凌嵌入式「2025嵌入式及边缘AI技术论坛」议程公布

    4月22日,飞凌嵌入式“2025嵌入式及边缘AI技术论坛”将在深圳举行,论坛以“新生态,智未来”为主题,旨在汇聚行业智慧,探讨嵌入式技术与边缘AI的深度融合与创新应用。
    的头像 发表于 04-02 15:12 1093次阅读
    飞凌<b class='flag-5'>嵌入式</b>「2025<b class='flag-5'>嵌入式</b>及边缘AI技术论坛」议程公布

    Python嵌入式系统中的应用场景

    你想把你的职业生涯提升到一个新的水平?Python嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的
    的头像 发表于 03-19 14:10 1230次阅读

    嵌入式主板选型与应用指南

    嵌入式主板是专为嵌入式系统设计的核心硬件平台,广泛应用于工业控制、物联网、医疗设备等领域。以下是关于嵌入式主板的详细介绍:1.嵌入式主板的核心特点紧凑尺寸:通常采用小型化设计(如Min
    的头像 发表于 02-27 14:53 946次阅读
    <b class='flag-5'>嵌入式</b>主板选型与应用指南

    小身材大能量:解读小尺寸嵌入式主板

    此前,已经带大家认识了嵌入式主板的尺寸版型,相信大家对此已有了初步印象。在科技日新月异的当下,各类设备都朝着更小体积、更高性能的方向发展。小尺寸嵌入式主板正悄无声息改变着我们的生活与商业模式。今天
    的头像 发表于 02-17 18:02 1010次阅读
    小身材大能量:解读小尺寸<b class='flag-5'>嵌入式</b>主板

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对嵌入式主板的基本概念、构成部分、
    的头像 发表于 01-13 16:30 1201次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    ARM架构嵌入式主板特点

    嵌入式主板可以理解为嵌入在设备中用于控制和数据处理的CPU板,也就是设备的“大脑”。当主板嵌入到设备中,当然对主板的体积和功耗会有更严格的要求(嵌入式主板的散热问题)。如今
    的头像 发表于 12-31 16:03 1918次阅读
    ARM架构<b class='flag-5'>嵌入式</b>主板特点