那曲檬骨新材料有限公司

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 正在幫助讓世界變得更美好,一次一行代碼。

審核編輯黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5093

    文章

    19178

    瀏覽量

    307709
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85040
收藏 人收藏

    評論

    相關推薦

    嵌入式主板的概述與發展

    隨著科技的迅猛發展,嵌入式系統在現代電子產品中扮演著越來越重要的角色。嵌入式主板作為嵌入式系統的核心組件之一,承擔著控制、處理和通訊等多種功能。本文將對嵌入式主板的基本概念、構成部分、
    的頭像 發表于 01-13 16:30 ?317次閱讀
    <b class='flag-5'>嵌入式</b>主板的概述與發展

    新手怎么學嵌入式?

    新手怎么學嵌入式? 在科技飛速發展的今天,嵌入式技術已經滲透到我們生活的各個角落,從智能手機到智能家居,從汽車電子到醫療設備。對于新手而言,嵌入式技術就像是一座充滿神秘和機遇的寶藏,等待著大家去挖掘
    發表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指將人工智能技術應用于嵌入式系統中的一種技術。嵌入式系統是嵌入到其他設備或系統中的計算機系統,通常用于控制、監測或執行特定任務,如智能手機、智能家居設備、智能汽車等中的
    的頭像 發表于 12-11 09:23 ?413次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工智能

    【「嵌入式系統設計與實現」閱讀體驗】全書概覽與內容簡介

    嵌入式系統設計與實現》,瞬間就被吸引了。非常感謝電子發燒友平臺提供這次寶貴機會,讓我有機會接觸到這么多優秀的設計案例。 今天剛收到書籍,接下來讓我們一起先大概瀏覽一下這本書的內容吧! 內容簡介 本書
    發表于 12-01 17:05

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

    在現代科技浪潮中,嵌入式技術已成為支撐各種智能設備和系統運行的核心力量。那么,究竟什么是嵌入式嵌入式系統,顧名思義,是將計算機的硬件和軟件嵌入到某種設備或系統中,以實現特定功能的計算
    的頭像 發表于 10-16 10:14 ?1587次閱讀

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

    AMD 憑借其 EPYC? 嵌入式處理器不斷樹立行業標準,為網絡、存儲和工業應用提供卓越的性能、效率、連接與創新。今天,我們正以第四代 AMD EPYC 嵌入式 8004 系列處理器擴展這一
    發表于 10-11 13:58 ?757次閱讀

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

    嵌入式主板,通常被稱為嵌入式系統的核心組件,是一種用于控制和數據處理的計算機硬件,其設計旨在嵌入特定設備中執行專門任務。嵌入式主板如同是設備的“大腦”,主要功能是根據需要管理和控制設備
    的頭像 發表于 09-30 10:05 ?981次閱讀

    嵌入式linux開發的基本步驟有哪些?

    嵌入式Linux開發是一個復雜的過程,涉及到硬件選擇、操作系統移植、驅動開發、應用程序開發等多個方面。以下是嵌入式Linux開發的基本步驟,以及每個步驟的說明。 硬件選擇 在開始嵌入式Linux開發
    的頭像 發表于 09-02 09:11 ?635次閱讀

    嵌入式開發前景怎么樣?

    嵌入式開發前景非常廣闊,這主要得益于物聯網、人工智能、大數據等技術的快速發展,以及嵌入式系統在各個領域的廣泛應用。以下是對嵌入式開發前景的詳細分析
    的頭像 發表于 07-10 09:00 ?2944次閱讀
    <b class='flag-5'>嵌入式</b>開發前景怎么樣?

    嵌入式系統怎么學?

    、C++或者Python。這些語言在嵌入式系統開發中都被廣泛應用。 3、微處理器/微控制器架構:學習常見的微處理器和微控制器架構,如ARM、AVR、PIC等,了解其特性和應用場景。 4、嵌入式系統開發
    發表于 07-02 10:10

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

    嵌入式主板,也稱為嵌入式計算機主板,是一種專門設計用于嵌入式系統的計算機主板。與臺式機和筆記本電腦中使用的常規主板不同,嵌入式主板設計用于集成到更大的電子設備中,例如汽車、醫療設備或自
    的頭像 發表于 04-17 15:11 ?1677次閱讀

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術集成到嵌入式系統中的一種解決方案。嵌入式系統是一種為特定應用而設計的計算機系統,它通常包括處理器、內存、外設接口等組件,并且被嵌入到更大的設備或系統中,
    的頭像 發表于 03-15 14:29 ?1385次閱讀

    fpga是嵌入式

    FPGA(現場可編程門陣列)不是嵌入式系統,但FPGA在嵌入式系統中有著重要的應用。
    的頭像 發表于 03-14 17:19 ?2534次閱讀

    fpga與嵌入式的區別 嵌入式和fpga開發有什么關系

    fpga與嵌入式的區別 FPGA與嵌入式系統在設計和應用上存在一些關鍵的區別,具體如下: 靈活性:FPGA具有高度的靈活性,可以根據需要重新編程以實現不同的功能。而嵌入式系統的硬件功能通常是固定
    的頭像 發表于 03-14 17:04 ?7072次閱讀

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

    聯網ARM開發 NB-IoT開發及實戰 七:python工程師,人工智能工程師 python語法基礎 python核心編程 基于OpenCV的機器視覺開發 嵌入式人工智能滲入生活的方
    發表于 02-26 10:17
    豪博百家乐娱乐城| 温州百家乐官网的玩法技巧和规则 | 百家乐靠什么赢| 太阳城百家乐红利| 金榜百家乐的玩法技巧和规则| 大发888大家赢娱乐| 蒙特卡罗国际网址| 百家乐官网翻天粤语版| 玩百家乐官网的好处| 百家乐冲动| 大发888网站是多少呢| 百家乐官网概率投注| 澳门百家乐官网怎洋赢钱| 聚宝盆百家乐官网的玩法技巧和规则 | 山东| 夜总会百家乐官网的玩法技巧和规则 | 大发888官网用户登录| 兴化市| 24山向方位度数| 百家乐群必胜打朽法| 临洮县| 百家乐官网线上| 百家乐隔一数打投注法| 梭哈棋牌游戏大厅| 百家乐官网赌博论谈| 百家乐网络赌博网址| bet365后备网址| 百家乐官网网上真钱娱乐平台| 百家乐7赢6| 最新皇冠网| 百家乐官网桌布尼布材质| 百家乐怎赌才赢钱| 总统线上娱乐城| 五张百家乐官网的玩法技巧和规则| 百家乐英皇娱乐城| 澳门赌场攻略| 澳门百家乐官网路单| 大发888娱乐场 注册| 百家乐官网包赢| 百家乐大天堂| 百家乐官网免费是玩|