2021-11-22 21:58:15|已瀏覽:457次
考慮到很多同學可能是新手,這里首先要談談交叉編譯的概念!
交叉編譯是嵌入開發中的基礎概念,名字看起來高端大氣上檔次,但其本質還是編譯,也就是把 C/C++ 代碼編譯成可執行程序,和我們初學 C/C++ 語言時的 Hello World!程序編譯幾乎完全相同。
那么,你可能會問,不同之處在哪里?
不同之處僅僅是,Hello World!在本機編譯,可執行程序在本機運行;而交叉編譯則是:程序在本機編譯,而可執行程序在設備運行(即:本機無法直接運行交叉編譯得到的二進制文件)。
對于大型嵌入式企業,開發環境一般分為兩個部分:
代碼編輯環境
代碼編譯環境
產品代碼位于代碼服務器上,每個員工遠程登錄代碼服務器之后創建自己的代碼分支,之后就可以進行代碼編輯和編譯了。
其中,代碼編輯是在員工的工作 PC 上完成;而代碼編譯則是在服務器上完成。編譯得到的二進制可執行程序,需要拷貝到工作 PC 上之后燒寫到設備中。大家通過類比可以發現,其實目前的鴻蒙設備開發方式就是企業級嵌入式產品的開發方式,只不過進行了縮減而已!
代碼編輯和代碼編譯在“不同的機器上”,兩臺機器通過網絡互聯,交叉編譯得到的二進制文件通過代碼編輯所在的環境燒寫到設備。
那么,這有什么問題嗎?
傳統的嵌入式開發方式對于程序老手來說,沒有任何問題,用起來游刃有余。但是,對于新手來說就可能是個噩夢了。
大家可以想想,程序出問題后如何定位?
就目前鴻蒙設備開發的情況來說,只有打印日志這一招可用。這一招最常用,可問題也不少......當然,有同學可能會說:“接個 JTag 斷點調試就可以解決這個問題了!”
我想說,理論上確實如此,但是目前支持鴻蒙系統的開發板(如:Hi3861 開發板)幾乎不可能使用 JTag 進行調試!
說得更簡單一點:目前還沒法用 JTag 對鴻蒙設備進行調試。所以,得另想辦法,而 Python 是一個可行的選擇。
Python 語言簡單而又不失強大,用于設備應用開發是再合適不過了。并且的,Python 開發者數量巨大,如果鴻蒙應用開發能夠支持 Python 語言,那么鴻蒙宇宙又可以增加無數閃耀的新星!目標:除 C 語言之外,給開發者提供另一種選擇,可以使用 Python 語言開發鴻蒙設備應用程序。
所以,最迫切需要的是一個 Python 語言解釋器,并且能夠作為應用的一部分運行于設備上。
如下圖所示:
那么現在的問題就是:如何獲得需要的 Python 語言解釋器?
在這里有同學可能會問:為什么不直接移植 MicroPython?而是對 MicroPython 做剪裁?
原因很簡單,我的想法是讓鴻蒙設備支持 Python 開發方式,而不是取代 C 語言開發方式,更不是取代鴻蒙!
大家要明白 MicroPython 設計的初衷是直接運行于微控器,使用 Python 控制硬件,所以 MicroPython 本身已經具備了一些操作系統的特質,如果直接移植到設備(Hi3861 開發板),那么也就意味著用 MicroPython 替代了鴻蒙,這顯然與期望不符!MicroPython 的語言解釋器是對 Python 的一個重新實現,非常適合資源受限的嵌入式設備。
因此,最好的做法就是剪裁 MicroPython 的語言解析器,之后將鴻蒙設備的系統 API 接口綁定到 Python 語言(即:Python 版同名系統 API),這樣就可以達到我的目的了。很顯然,在設備端需要開發一個應用引擎。如果需要使用 Python 開發設備應用程序,直接編譯運行這個應用引擎并運行于設備之上。
而設備應用程序由 Python 腳本構成,編寫好之后直接傳入設備中即可。
講到這里相信各位同學也明白了,設備應用的 Python 腳本其實根本“不知道”自己執行在鴻蒙系統上,這些腳本的執行僅僅需要 Python 解釋器和相應 API 接口。
那么,請大家思考一下,如果這個引擎運行于 Windows 之上會發生什么?會發生的事情顯然就是:我們可以在 Windows 上執行為鴻蒙設備而編寫的 Python 應用腳本。
于是,前面所說的調試問題就可以迎刃而解了。
在 Windows 上使用純 Python 語言模擬實現鴻蒙設備的 API 接口(Python 版),然后使用現有的 Python 開發環境調試設備應用腳本(如:斷點調試)。
這樣就可以大大提高開發效率,避免代碼中滿篇的添加 printf 打印語句。python 是使用 Java 語言對 Python 的一個重新實現,借助它就可以在 Java 中使用 Python 進行編碼。
而鴻蒙手機 APP 支持使用 Java 語言進行開發,所以理論上可以在手機 APP 中使用 Python 完成部分代碼的編寫!相關案例我會在后續為大家提供出來。
本文由培訓無憂網千鋒教育專屬課程顧問整理發布,希望能夠對想學習Python開發培訓的同學有所幫助。更多Python開發培訓課程歡迎關注培訓無憂網Python開發培訓頻道或添加老師微信:15033336050
注:尊重原創文章,轉載請注明出處和鏈接 http://m.dedgn.cn/news-id-4523.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注python培訓頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050