女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python在實時嵌入式系統中扮演怎樣的角色?

5RJg_mcuworld ? 來源:未知 ? 作者:胡薇 ? 2018-10-17 08:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

早年,雖然Python是一款比較容易上手的腳本語言,而且有強大的社區支持,一些非計算機專業領域的人都選它作為入門語言。遺憾的是,它不能實現一些非常底層的操控,所以在硬件領域并不起眼。

然而今時不同往日!

硬件圈同樣非常關注Python!

說到Python用于硬件開發。很多人可能想到的是樹莓派等支持linux系統的(樹莓派和Arduino應用Python的的例子實在是多,比如,利用Raspberry Pi的硬件和Python語言來完成一個機器人制作。),然而現在Python已經完全可以脫離系統,直接進行單片機的開發了。

用Python語言控制單片機

MicroPython是在單片機上可以跑的Python,你可以通過Python腳本語言開發單片機程序。MicroPython基于ANSI C,語法跟Pyton 3基本一致,擁有自家的解析器、編譯器、虛擬機和類庫等。目前它支持基于32-bit的ARM處理器,比如STM32F405、STM32f407等,也就是說ARM處理器STM32F405上直接可運行Python語言,用Python語言來控制單片機。

借助Micro Python,用戶完全可以通過Python腳本語言實現硬件底層的訪問和控制,比如說控制LED燈泡、LCD顯示器、讀取電壓、控制電機、訪問SD卡等。

下面這篇美國EDN發布的文章,介紹了Python在實時嵌入式系統中扮演的角色:Python's role in developing real time embedded systems。

Python具有良好的跨平臺性,比如Linux和Windows,或是諸如Raspberry Pi等單板計算機。不過,隨著Python的日益普及,人們可能會問,在實時嵌入式系統中是否也有Python的一席之地。答案是肯定的。下面是開發人員發現Python在實時嵌入式系統開發中有可能扮演的五個主要角色。

作用# 1設備調試和控制

嵌入式軟件開發過程中,開發人員常常需要分析總線通信量,如USB、SPI或I2C。有的分析僅僅是出于調試目的,但有時則需要控制總線分析儀并發送信息至嵌入式系統。許多總線分析儀和通信工具都有友好的用戶接口,可以用來控制工具。他們通常還提供一種方法來開發腳本,也可以用來控制工具。Python是一種普遍支持的腳本語言,有時則是一些工具的接口,或是用來控制工具。

作用# 2–自動化測試

通過Python控制工具在嵌入式系統中發送和接收消息的能力,使得利用Python構建自動化測試(包括回歸測試)成為可能。Python腳本可以設置嵌入式系統進入不同的狀態,設置配置文件,并測試所有可能的干擾以及系統與外部環境的相互作用。使用Python開發自動化測試的好處是,回歸測試可以開發持續測試并訓練系統。任何的代碼變動導致的bug或不合格的結果都將被實時的檢測出來。

作用# 3–數據分析

通過Web簡單地搜索Python庫,你會發現,有許多免費強大的Python庫都可以用來開發應用程序。Python可以用來接收非常重要的嵌入式系統數據,然后存儲到數據庫或是本地進行分析。開發者還可以使用Python開發實時可視化功能來展現臨界參數,或是存儲這些參數用于后續分析。使用Python進行數據分析的優點之一是當基礎性工作完成之后,新功能的植入會顯得比較簡單。

作用# 4–實時軟件

Python已經證實了自己的強大性和易使用性,甚至發現它是作為一門編程語言進入實時嵌入式系統。是的,嵌入式軟件本身就是用Python寫的而不是C/C++。用于實時軟件最廣泛的Python版本是MicroPython,大多是設計在ARM Cortex-M3/4微控制器上運行。MicroPython并不孤立。Synapse和OpenMV公司在嵌入式系統中既使用MicroPython也使用他們自己的Python port。對MicroPython感興趣的讀者可能對DesignNews(EDN的姐妹機構)的繼續教育課程也感興趣。

作用# 5–學習面向對象編程

Python是一門免費的編程語言,可以跨多個平臺使用,對于學生和非編程人員而言比較簡單。該語言與C語言不同,它也是現代式的,并且可以在自由形態的腳本類型中結構化,或是作為一個復雜的面向對象的體系結構。Python本身也很靈活。甚至還有這種情景:沒有編程經驗的電氣工程師可以利用Python寫出有用的測試腳本或用最少的時間實施電板檢查。

Python的學習曲線并不陡峭,熟悉Python學習曲線的開發人員發現,當你有了其它語言的基礎之后,學習Python比學習任意其他的編程語言都要簡單。出于這些原因,當開發人員看到Python扮演著編程孵化器角色,并吸收其它缺乏經驗的工程師對宜早不宜遲的設計周期做出貢獻時,不應該感到驚訝。

什么?Python+FPGA!?

夏宇聞老師幾個月前在微信上推薦了一個帖子,說的是有人用Digilent的PYNQ-Z1板卡實現了超強的加速性能。

早年,關于FPGA的開發都是基于硬件描述語言,從開始的VHDL到現在更為流行的Verilog,軟件應用也從由最開始的匯編語言發展到現在的c/c++實現,這些都是目前為大多數FPGA開發者所熟悉的FPGA發展路程。上個月,IEEE收錄了一篇關于使用Python開發FPGA應用的論文。

在美國納帕舉行的第25屆關于可編程計算機器領域IEEE國際討論會上,一篇名為“評估通過Python快速開發異構處理器FPGA應用性能”的短篇論文獲得了最佳短篇論文獎。這篇論文主要討論了Python開發FPGA應用的優勢和效率,論文中針對Digilent的PYNQ-Z1板卡(內部集成一個Xilinx Zynq SoC),通過支持Python編程和Jupyter Notebooks框架的PYNQ開發環境,應用Python對此板卡進行開發編程,并最終評估開發結果的優勢和效率。值得一提的是,發表這篇論文的作者都是業界大佬,包括高級計算機科學家AndrewG.Schmidt、計算機科學家Gabriel Weise以及來自美國南加州大學工程技術科學協會的研究室主任Matthew French。在論文中,Matthew French教授主要就利用PYNQ開發環境,應用Python語言對Xilinx Zynq器件進行編程應用開發時對FPGA器件的影響、性能結果以及瓶頸影響進行了評估。此外,各位教授就基于Python的開發結果與已經存在的基于C語言的開發及手動開發結果進行了比較分析。

在論文中,各位教授還對PYNQ開發環境的優缺點進行了闡述:

首先來說,PYNQ應用開發框架是一個開源的開發環境,提供了標準的可以約束芯片I/O引腳的“Overlay”比特流,同時,開發人員可以在此開發環境中,利用Python對FPGA進行快速編程開發。此外,PYNQ開發環境內部集成標準的編程范式,支持HDMI視頻流的輸出輸出,同時具有兩組12pin的PMOD連接器和一個兼容Arduino的連接器(可以連接或配置為Arduino系列板卡)。其中,默認的overlay中實例化了多個可以驅動多I/O接口的微Blaze處理器核,也可以配置一些支持圖像濾波功能和試驗SIMT(單指令,多線程)編程軟邏輯GPU的overlay。同時,PYNQ也提供了支持比特流編程的API和可擴展的通用Python庫和包,并且可以通過存儲映射I/O(MMIO)直接尋址可編程邏輯單元,另外還支持DMA交易(不需要經過器件驅動和核模塊之間的不斷握手確認)。

其次,就目前來說,PYNQ還不支持任何高級的綜合,也無法將Python應用直接移植到FPGA中。這就意味著,開發者依然原型必須使用FPGA來創建一個設計,即當PYNQ提供一個支持板卡IO接口的Overlay框架以時,任何用戶邏輯依然必須由開發者親自創建并綜合。不過,開發者仍然可以使用高級綜合工具或上面提到的Python-to-HDL工程來完成這個任務,但是最終,開發者依然需要基于此設計并創建一個整合了Python代碼比特流文件。

也正是由于PYNQ存在這方面的缺陷,論文的作者并沒有簡單依賴現存的PYNQ API接口和overlay,他們開發出一個基于Redsharc項目的特定應用程序內核進行研究。

結果如何呢?論文最后,作者對給出了Python開發Zynq應用的各項評估結果。結果中給出了通過c/c++實現這項研究的一般圖像處理管道性能,以及定制的硬件加速器和Python實現的性能結果(下圖所示),幫助我們更好地理解了Python + FPGA開發環境的性能和能。表中可以看出,結果十分明顯,通過PYNQ實現較c實現速度提高了30倍之多,更甚者,從結果中可以看出,當Python實現時有更加有效的可用庫時,比如OpenCV,其性能可以增長更多。

Python軟件實現和FPGA性能潛力的結合是一個非常有意義的工作,將會開創出一個類似于樹莓派和Arduino的廣大的開發者社區。Python+FPGA是一個廣闊的未經勘察過的領域——一個全新的更加高效的開發空間——通過PYNQ開發環境將會吸引更多的系統開發者加入的領域。

日前在賽靈思OPENHW2017創新大賽暨教師峰會上,北京理工大學嵩天副教授《Python編程語言和PYNQ在中國》的演講,科普了Python編程風靡全球的原因。

Python編程語言舉例,只用了21行代碼就完成了一個圖像素描的處理,Python大大提升了開發效率。

人工智能機器學習走熱,讓 Python 從眾多編程語言中脫穎而出。

還等什么呢?

人生苦短,我用Python

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

    關注

    5152

    文章

    19675

    瀏覽量

    317566
  • python
    +關注

    關注

    56

    文章

    4827

    瀏覽量

    86748

原文標題:Python正向硬件圈殺來!工程師們,別再問需不需要學Python了!

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何成為一名嵌入式軟件工程師?

    、Java等)和軟件開發工具,還需要對硬件的工作原理有深入的理解。 團隊嵌入式軟件工程師往往扮演著核心角色,他們的工作直接關系到產品的
    發表于 04-15 14:37

    嵌入式教育科普|SPI接口全面解析

    現代科技領域,嵌入式系統接口作為信息交互的核心樞紐,扮演著不可或缺的角色
    的頭像 發表于 03-24 16:45 ?1423次閱讀
    <b class='flag-5'>嵌入式</b>教育科普|SPI接口全面解析

    Python嵌入式系統的應用場景

    你想把你的職業生涯提升到一個新的水平?Python嵌入式系統中正在成為一股不可缺少的新力量。盡管傳統上嵌入式開發更多地依賴于C和C++語言
    的頭像 發表于 03-19 14:10 ?714次閱讀

    CPLD 嵌入式系統的應用

    現代電子設計領域,復雜可編程邏輯器件(CPLD)因其靈活性、成本效益和快速開發周期而在嵌入式系統扮演著重要角色。 1. CPLD簡介 C
    的頭像 發表于 01-23 09:50 ?838次閱讀

    PLD嵌入式系統的應用實例

    隨著技術的發展,嵌入式系統各個領域扮演著越來越重要的角色。從簡單的家用電器到復雜的工業控制系統
    的頭像 發表于 01-20 09:42 ?803次閱讀

    嵌入式主板的概述與發展

    隨著科技的迅猛發展,嵌入式系統現代電子產品扮演著越來越重要的角色
    的頭像 發表于 01-13 16:30 ?778次閱讀
    <b class='flag-5'>嵌入式</b>主板的概述與發展

    MPU嵌入式系統的應用

    一、MPU的基本功能 微處理器單元(MPU)是嵌入式系統的大腦,負責執行程序指令、處理數據和控制其他硬件設備。MPU的基本功能包括: 指令執行:MPU能夠從存儲器讀取指令,解碼這些
    的頭像 發表于 01-08 09:26 ?909次閱讀

    LDO嵌入式系統的應用 常見LDO故障及解決方法

    LDO嵌入式系統的應用 LDO(Low Dropout Regulator,低降壓線性穩壓器)是一種常用的電源管理集成電路,它在嵌入式
    的頭像 發表于 12-13 09:08 ?2276次閱讀

    HAL庫嵌入式系統的應用

    HAL庫(Hardware Abstraction Layer Library,硬件抽象層庫)嵌入式系統扮演著至關重要的
    的頭像 發表于 12-02 11:32 ?2111次閱讀

    mmc卡在嵌入式系統的使用

    隨著科技的發展,嵌入式系統我們的日常生活扮演著越來越重要的角色。從智能手機到家用電器,再到工
    的頭像 發表于 11-25 09:58 ?1180次閱讀

    嵌入式超火的方向有哪些?

    的工業化設備都是一個硬件,為了保證硬件的正常運作,需要在硬件嵌入一些傳感器和程序。因此目前甚至是未來嵌入式系統工業自動化中都
    發表于 11-21 15:49

    嵌入式 Linux 操作系統配置

    隨著物聯網(IoT)和智能設備的快速發展,嵌入式系統各個領域扮演著越來越重要的角色。Linux因其開源、靈活和穩定的特性,成為
    的頭像 發表于 11-06 10:22 ?1202次閱讀

    ROM嵌入式系統的應用

    ROM(Read-Only Memory,只讀存儲器)是一種非易失性存儲器,即使斷電的情況下也能保持存儲的數據。嵌入式系統,ROM
    的頭像 發表于 11-04 10:06 ?1132次閱讀

    嵌入式系統的未來趨勢有哪些?

    會更加模塊化和集成化,允許更容易的硬件和軟件的切換和升級。這會提高系統的可維護性和可擴展性,會使得系統能夠適應不斷變化的應用需求。 5. 生態可持續性與環保材料
    發表于 09-12 15:42

    嵌入式系統實時操作系統

    嵌入式RTOS是嵌入式應用程序運行、相互交互和與外界通信的底層軟件機制。本節,您將了解嵌入式軟件開發人員使用哪些流行RTOS以及它們運行
    的頭像 發表于 08-20 11:28 ?888次閱讀