Python在實時嵌入式系統開發中扮演的五個主要角色
Python已經成為相當熱門的程序語言。它以著名的Monty Python喜劇組命名,屬于面向對象和解釋型語言(非編譯型)。該屬性使得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語言。一些人可能會認為制造商的行為和Raspberry Pi 是促使Python在流行榜名單往前移動的原因之一。而且,語言本身很靈活,易于學習,并且可以在基于微控制器的環境中正常工作。因此當開發者看到Python出現在嵌入式系統開發中并逐漸發揮作用時,不應感到驚訝。