0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式Python簡介

tr4578 ? 2022-12-28 09:51 ? 次閱讀

如果您正在對(duì)嵌入式設(shè)備進(jìn)行編程,那么您很可能正在使用 C/C++ 編程語言編寫代碼。C 最初創(chuàng)建于 20 世紀(jì) 70 年代初;然而,直到 1990 年代,嵌入式設(shè)備編程才從匯編語言轉(zhuǎn)向高級(jí) C 語言。在接下來的三十年里,C/C++ 憑借其在速度和緊湊性方面的卓越性能,將在嵌入式應(yīng)用程序中占據(jù)主導(dǎo)地位。如今,隨著流行的 Python 編程語言以嵌入式為中心的實(shí)現(xiàn)的興起,另一種轉(zhuǎn)變正在出現(xiàn)。

Python 于 1990 年代首次出現(xiàn),并從那時(shí)起在軟件開發(fā)人員中穩(wěn)步流行。事實(shí)上,在 2020 年,Python 終于在 IEEE Spectrum 的年度編程語言流行度調(diào)查中名列第一。最初,Python 作為一種用于測(cè)試電子設(shè)備的腳本語言在嵌入式開發(fā)人員中流行起來。慢慢地,它一直在開發(fā)堆棧中向下移動(dòng)。實(shí)際上有多種 Python 實(shí)現(xiàn),其中 CPython 是廣泛用于桌面應(yīng)用程序的參考實(shí)現(xiàn)。

PyMiteTiny Python是最早為在微控制器上運(yùn)行而開發(fā)功能降低的 Python 實(shí)現(xiàn)的嘗試之一。PyMite 只包括一個(gè) VM 和運(yùn)行時(shí)——沒有編譯器。這意味著它只能運(yùn)行先由 CPython 編譯的字節(jié)碼。Tiny Python 確實(shí)包含一個(gè)字節(jié)碼編譯器,但仍然只占用大約 64 KB 的 RAM。兩者都基于 Python 2,并且都沒有被積極開發(fā)。盡管如此,它們確實(shí)代表了將 Python 用于嵌入式應(yīng)用程序的最早嘗試。

MicroPython是用于嵌入式開發(fā)的 C 編程語言的令人興奮的替代方案。它將基于桌面的 CPython 語言的幾個(gè)流行特性帶到各種流行的微控制器架構(gòu)中,包括STM32 板、TI CC3200/WiPy、Teensy 板、Nordic nRF系列、SAMD21、SAMD51、ESP8266、ESP32、RISC-V,甚至是 Lego頭腦風(fēng)暴 EV3 平臺(tái)。自 2014 年推出以來,MicroPython 的受歡迎程度穩(wěn)步上升,反映出 CPython 的總體使用量增加。另一個(gè)吸引人的特性是 MicroPython 的源代碼是在 GitHub 上的開源許可(MIT 許可)下提供的。

CircuitPython是一個(gè)教育和制造商友好的 Python 實(shí)現(xiàn),它本身是 MicroPython 的一個(gè)分支。CIrcuitPython 開發(fā)支持由Adafruit Industries提供,是其許多微控制器產(chǎn)品的實(shí)際語言。目前有超過一百種電路板與 CircuitPython 兼容,大部分基于 Microchip 的 SAMD21/SAMD51 和 Nordic Semiconductor 的nRF52840微控制器。CircuitPython 的一個(gè)關(guān)鍵特性是能夠簡單地將源代碼文件 (.py) 拖到兼容的開發(fā)板上,這與將文件拖到 USB 閃存驅(qū)動(dòng)器上沒有什么不同。不需要編譯代碼,也不需要訪問麻煩的(有時(shí)是昂貴的)程序員/調(diào)試器。此外,源代碼仍然可以在設(shè)備上訪問,并且可以在任何計(jì)算機(jī)上打開。這意味著您可以使用簡單的文本編輯器從任何計(jì)算機(jī)下載、編輯和重新編程兼容 CircuitPython 的開發(fā)板。

澤林思是一組包含在軟件開發(fā)工具包 (SDK) 中的工具,適用于物聯(lián)網(wǎng) (IoT) 產(chǎn)品的開發(fā)人員。他們專注于簡化 32 位微控制器(包括 ESP32、ESP8266、ARM Cortex M0+、ARM Cortex M3 和 ARM Cortex M4)與各種物聯(lián)網(wǎng)云服務(wù)提供商(AWS、Azure、Google Cloud Platform、Ubidots、The Things Network)之間的連接). 只需幾行 Python 代碼,就可以將邊緣設(shè)備傳感器的數(shù)據(jù)傳輸?shù)皆贫诉M(jìn)行進(jìn)一步分析和長期存儲(chǔ)。在提供的工具中,命令行界面 (CLI)、Zerynth Studio 集成開發(fā)環(huán)境 (IDE)、Zerynth 操作系統(tǒng) (OS) 和 Zerynth 設(shè)備管理器;全部適用于 Windows、Mac OS 和 Linux。Zerynth VM 占用了 80KB 的閃存和 5KB 的 RAM。

CPython。單板計(jì)算機(jī) (SBC) 是信用卡大小的成熟臺(tái)式計(jì)算機(jī)(例如,Raspberry Pi、BeagleBone)。它們也非常便宜,因此越來越多地用于嵌入式應(yīng)用程序。當(dāng)前一代的 SBC 速度足夠快,并且有足夠的內(nèi)存和存儲(chǔ)空間來運(yùn)行成熟的 CPython 實(shí)現(xiàn)(或通過省略不需要的模塊而略微精簡的實(shí)現(xiàn))。還有其他實(shí)現(xiàn),例如 Python for ARM Linux,它為基于 ARM 的架構(gòu)定制了 Python(與 x86/x64 架構(gòu)相比)。最近,PyPy 等其他實(shí)現(xiàn)(基于即時(shí)編譯器與 CPython 解釋器的對(duì)比)已移植到 Raspberry Pi 并提供改進(jìn),例如更快的速度性能。

開發(fā)人員需要記住,Python 編程語言沒有單一的“風(fēng)格”。有許多實(shí)現(xiàn),其中一些是專門為在嵌入式平臺(tái)上出色執(zhí)行而構(gòu)建的。Python 作為專業(yè)嵌入式開發(fā)領(lǐng)域的主要參與者的未來取決于證明它可以達(dá)到或超過 C 的性能。我們可以回顧歷史來提供一些見解。畢竟,從匯編語言到 C 語言的轉(zhuǎn)變不是一蹴而就的。通過在 C 宏中插入?yún)R編代碼,匯編仍然用于 C 程序的性能關(guān)鍵部分。Python 和 C 可以類似地協(xié)同工作。

另一個(gè)考慮是微控制器比十年或二十年前的微控制器強(qiáng)大光年。時(shí)鐘周期已經(jīng)從以幾兆赫茲測(cè)量到超過千兆赫茲。曾經(jīng)以幾十千字節(jié)為單位的閃存,現(xiàn)在以幾兆字節(jié)為單位。幸運(yùn)的是,性能的顯著提升并沒有伴隨著價(jià)格的相應(yīng)上漲。因此,嵌入式應(yīng)用程序開發(fā)人員可以編寫更高級(jí)別的代碼,而不必理會(huì)每個(gè)時(shí)鐘周期或內(nèi)存字節(jié),并且仍然可以生產(chǎn)出響應(yīng)迅速的高質(zhì)量產(chǎn)品。

結(jié)論

編程語言與口頭語言一樣,不斷發(fā)展壯大以響應(yīng)時(shí)代的需求。專門為嵌入式系統(tǒng)構(gòu)建的 CPython 衍生產(chǎn)品,如 MicroPython 和 CircuitPython,有望成為未來嵌入式開發(fā)的主要參與者,因?yàn)樗鼈兪箘?chuàng)建過程民主化。當(dāng)結(jié)合電子硬件的一些基本知識(shí)時(shí),嵌入式 Python 語言使人們,無論技能水平如何,都能將物理和數(shù)字融合在一起。這種能力開啟了幾年前難以想象的可能性。在世界各地,可訪問的開源編程語言和嵌入式平臺(tái)讓當(dāng)?shù)厣鐓^(qū)能夠構(gòu)建本地化、特定于他們的需求、具有成本效益且可持續(xù)的工具。難民營,嵌入式 Python 正在幫助讓世界變得更美好,一次一行代碼。

審核編輯黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5085

    文章

    19138

    瀏覽量

    305731
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84758
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    新手怎么學(xué)嵌入式?

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

    什么是嵌入式人工智能

    嵌入式人工智能是指將人工智能技術(shù)應(yīng)用于嵌入式系統(tǒng)中的一種技術(shù)。嵌入式系統(tǒng)是嵌入到其他設(shè)備或系統(tǒng)中的計(jì)算機(jī)系統(tǒng),通常用于控制、監(jiān)測(cè)或執(zhí)行特定任務(wù),如智能手機(jī)、智能家居設(shè)備、智能汽車等中的
    的頭像 發(fā)表于 12-11 09:23 ?318次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工智能

    【「嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)」閱讀體驗(yàn)】全書概覽與內(nèi)容簡介

    嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》,瞬間就被吸引了。非常感謝電子發(fā)燒友平臺(tái)提供這次寶貴機(jī)會(huì),讓我有機(jī)會(huì)接觸到這么多優(yōu)秀的設(shè)計(jì)案例。 今天剛收到書籍,接下來讓我們一起先大概瀏覽一下這本書的內(nèi)容吧! 內(nèi)容簡介 本書
    發(fā)表于 12-01 17:05

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

    在現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設(shè)備和系統(tǒng)運(yùn)行的核心力量。那么,究竟什么是嵌入式嵌入式系統(tǒng),顧名思義,是將計(jì)算機(jī)的硬件和軟件嵌入到某種設(shè)備或系統(tǒng)中,以實(shí)現(xiàn)特定功能的計(jì)算
    的頭像 發(fā)表于 10-16 10:14 ?1112次閱讀

    AMD 面向嵌入式系統(tǒng)推出高能效 EPYC 嵌入式 8004 系列

    AMD 憑借其 EPYC? 嵌入式處理器不斷樹立行業(yè)標(biāo)準(zhǔn),為網(wǎng)絡(luò)、存儲(chǔ)和工業(yè)應(yīng)用提供卓越的性能、效率、連接與創(chuàng)新。今天,我們正以第四代 AMD EPYC 嵌入式 8004 系列處理器擴(kuò)展這一
    發(fā)表于 10-11 13:58 ?724次閱讀

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

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

    嵌入式linux開發(fā)的基本步驟有哪些?

    嵌入式Linux開發(fā)是一個(gè)復(fù)雜的過程,涉及到硬件選擇、操作系統(tǒng)移植、驅(qū)動(dòng)開發(fā)、應(yīng)用程序開發(fā)等多個(gè)方面。以下是嵌入式Linux開發(fā)的基本步驟,以及每個(gè)步驟的說明。 硬件選擇 在開始嵌入式Linux開發(fā)
    的頭像 發(fā)表于 09-02 09:11 ?512次閱讀

    嵌入式系統(tǒng)怎么學(xué)?

    、C++或者Python。這些語言在嵌入式系統(tǒng)開發(fā)中都被廣泛應(yīng)用。 3、微處理器/微控制器架構(gòu):學(xué)習(xí)常見的微處理器和微控制器架構(gòu),如ARM、AVR、PIC等,了解其特性和應(yīng)用場(chǎng)景。 4、嵌入式系統(tǒng)開發(fā)
    發(fā)表于 07-02 10:10

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

    嵌入式主板,也稱為嵌入式計(jì)算機(jī)主板,是一種專門設(shè)計(jì)用于嵌入式系統(tǒng)的計(jì)算機(jī)主板。與臺(tái)式機(jī)和筆記本電腦中使用的常規(guī)主板不同,嵌入式主板設(shè)計(jì)用于集成到更大的電子設(shè)備中,例如汽車、醫(yī)療設(shè)備或自
    的頭像 發(fā)表于 04-17 15:11 ?1465次閱讀

    嵌入式fpga是什么意思

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

    fpga是嵌入式

    FPGA(現(xiàn)場(chǎng)可編程門陣列)不是嵌入式系統(tǒng),但FPGA在嵌入式系統(tǒng)中有著重要的應(yīng)用。
    的頭像 發(fā)表于 03-14 17:19 ?2343次閱讀

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

    聯(lián)網(wǎng)ARM開發(fā) NB-IoT開發(fā)及實(shí)戰(zhàn) 七:python工程師,人工智能工程師 python語法基礎(chǔ) python核心編程 基于OpenCV的機(jī)器視覺開發(fā) 嵌入式人工智能滲入生活的方
    發(fā)表于 02-26 10:17

    嵌入式學(xué)習(xí)步驟

    語言編寫。但是,有些嵌入式系統(tǒng)也使用其他編程語言,例如Python或Java。 (3).了解硬件:深入了解您要控制的硬件設(shè)備的功能和特性。您需要了解嵌入式系統(tǒng)的處理器、內(nèi)存、I/O端口、傳感器和其他
    發(fā)表于 02-02 15:24

    嵌入式系統(tǒng)的應(yīng)用實(shí)例

    嵌入式系統(tǒng)的三個(gè)基本要素是嵌入性、專用性與計(jì)算機(jī)系統(tǒng)。
    的頭像 發(fā)表于 01-22 09:57 ?1086次閱讀

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

    嵌入式系統(tǒng)(Embedded Systems)是一種特殊類型的計(jì)算機(jī)系統(tǒng),被嵌入到其他設(shè)備或系統(tǒng)中,用于執(zhí)行特定的任務(wù)或控制特定的功能。這些系統(tǒng)通常設(shè)計(jì)用于特定的應(yīng)用領(lǐng)域,具有特定的硬件和軟件要求
    的頭像 發(fā)表于 01-17 16:39 ?949次閱讀
    啥是<b class='flag-5'>嵌入式</b>?<b class='flag-5'>嵌入式</b>都有啥?薪資如何?前景如何