在過去的幾年里,Python 已經成為一種非常流行的程序語言。該語言是面向對象和解釋(未編譯)的,這導致它被許多平臺(如 Linux、Windows)和單板計算機(如 Raspberry Pi)采用。隨著如此廣泛且不斷增長的采用率,人們可能想知道 Python 在實時嵌入式系統中是否有一席之地。以下是嵌入式開發人員可能會發現 Python 在實時嵌入式系統中扮演的五個角色。
角色 1 – 設備控制和調試
在嵌入式軟件開發過程中,開發人員經常發現自己在分析 USB、SPI 或 I2C 等總線流量。有時分析只是為了調試目的,但有時需要實際控制總線分析器并向嵌入式系統發送消息。許多總線分析器和通信工具具有可用于控制工具的用戶友好界面,但它們通常還提供一種開發可用于控制工具的腳本的方法。 Python 是一種腳本語言,通常支持(有時是專門支持)與工具交互和控制。
角色 2 – 自動化測試
控制可以通過 Python 從嵌入式系統發送和接收消息的工具的能力為使用 Python 創建包括回歸測試在內的自動化測試提供了可能性。可以開發 Python 腳本,將嵌入式系統設置為不同的狀態,設置配置并測試系統與外部世界的所有可能的擾動和交互。使用 Python 進行自動化測試的一個優點是可以開發回歸測試來不斷測試和運行系統。任何導致錯誤或不一致的代碼更改都會立即被發現。
角色 3——數據分析
在 Web 上簡單搜索 Python 庫會發現有許多免費可用且功能強大的庫可用于開發 Python 應用程序。 Python 可用于接收關鍵的嵌入式系統數據,然后將其存儲在數據庫中或本地進行分析。嵌入式開發人員可以使用 Python 開發顯示關鍵參數的實時可視化,或存儲和保存這些參數以供以后分析。使用 Python 執行數據分析的好處在于,基礎工作已經完成,只需投入使用即可。
角色 4 – 實時軟件
Python 已經證明自己是如此強大且易于使用,以至于 Python 甚至正在進入實時嵌入式系統。是的,嵌入式軟件本身是用 Python 而不是 C/C++ 編寫的。最廣泛使用的實時 Python 版本是 Micro Python 端口,旨在在 ARM Cortex-M3/4 等微控制器上運行。不過,Micro Python 并不孤單。 Synapse 和 OpenMV 等公司在嵌入式系統中使用 Micro Python 或他們自己的 Python 端口。
角色 5——學習面向對象編程
Python 是一種免費的編程語言,可以跨多個平臺使用,并且易于學生和非編程類型學習如何編程。與 C 不同,該語言也是現代的,并且能夠以自由形式的腳本類型方式或作為復雜的面向對象架構進行結構化。 Python 已被證明易于學習且用途廣泛。甚至在某些情況下,沒有編程經驗的電氣工程師能夠使用 Python 編寫有用的測試腳本或以最少的時間投入執行電路板檢查。學習曲線并不陡峭,熟悉 Python 的開發人員發現它是一種易于切換的語言。
結論
學生和工程師越來越熟悉 Python 編程語言,該語言本身靈活、易于學習,并且可以適應在基于微控制器的環境中工作。當嵌入式開發人員看到 Python 出現并開始在嵌入式系統開發中發揮作用時,他們不應該感到驚訝。