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

审核编辑黄昊宇

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

    关注

    5209

    文章

    20668

    浏览量

    337127
  • python
    +关注

    关注

    58

    文章

    4885

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    飞凌嵌入式亮相德国纽伦堡embedded world 2026,深耕全球嵌入式AI市场!

    2026年3月10日,全球嵌入式技术领域的年度盛会——embedded world 2026国际嵌入式展览会,在德国纽伦堡会展中心盛大启幕。飞凌嵌入式携多款重磅新品及全场景解决方案再一次隆重参展
    的头像 发表于 03-11 16:37 1.1w次阅读
    飞凌<b class='flag-5'>嵌入式</b>亮相德国纽伦堡embedded world 2026,深耕全球<b class='flag-5'>嵌入式</b>AI市场!

    什么是嵌入式应用开发?

    概述 所谓的嵌入式应用开发就是在嵌入式操作系统下进行开发、软硬件综合开发 ‌嵌入式应用开发‌是指在嵌入式操作系统下进行开发,包括系统化设计指导下的硬件和软件综合研发。
    发表于 01-12 16:13

    arm嵌入式主板优缺点

    嵌入式主板是嵌入在设备里面做控制、数据处理使用的CPU板 ,常见的有两类,即基于X86的嵌入式主板和基于RISC的ARM 嵌入式主板。今天我们就来认识arm
    发表于 01-08 07:08

    系统嵌入式的学习路线

    嵌入式技术是各种电子产品的核心技术,也是工业4.0、远程医疗、3D打印等新兴产业的核心技术,具有广阔的发展前景。很多计算机、电子信息类专业的学生都想把嵌入式开发作为自己的职业目标,但是因为嵌入式涉及
    发表于 12-16 07:49

    CW32嵌入式软件开发的必备知识

    嵌入式系统中最常用的编程语言,因为它们提供了直接访问硬件的能力,并且代码执行效率高。 了解汇编语言,用于编写底层驱动、中断处理程序以及性能要求极高的代码段。 对其他编程语言如Python、Java等有
    发表于 11-28 07:48

    嵌入式与FPGA的区别

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

    嵌入式和FPGA的区别

    嵌入式系统与FPGA的核心差异:软件定义功能VS硬件可重构。嵌入式适合通用计算,开发门槛低;FPGA凭借并行处理实现纳秒级响应,但成本高、开发难。二者融合的SoC器件正成为未来趋势,平衡性能与灵活性
    发表于 11-19 06:55

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

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

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

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

    AMD 2025.1版嵌入式软件和工具的新增功能

    AMD 2025.1 版嵌入式软件和工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。
    的头像 发表于 08-15 15:32 1439次阅读

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

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

    入行嵌入式应该怎么准备?

    想入行嵌入式该怎么准备。很能理解大家对于嵌入式的关注,嵌入式系统是当今科技领域中的重要组成部分,它存在于我们生活的方方面面,各行各业。智能化时代的到来也让嵌入式技术炙手可热! SO,
    发表于 08-06 10:34

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

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

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

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

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

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