Python 已經成為相當熱門的程式語言。它以著名的 MontyPython 喜劇組命名,屬於物件導向和解釋型語言 (非編譯型) 。該屬性使得 Python 具有良好的跨平臺性,比如 Linux 和 Windows,或是諸如 RaspberryPi 等單板計算機。隨著 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,大多是設計在 ARMCortex-M3/4 微控制器上執行。 MicroPython 並不孤立。 Synapse 和 OpenMV 公司在嵌入式系統中既使用 MicroPython 也使用他們自己的 Pythonport 。對 MicroPython 感興趣的讀者可能對 DesignNews(EDN 的姐妹機構) 的繼續教育課程也感興趣。

  5 、學習物件導向程式設計

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

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