寫在前面:服務器
每一年的過年前夕,手中的項目必定會告急。。。而本身又缺少三頭六臂七十二變等特技,因此只能在鴻蒙社區先消失一陣子了。今天再看社區的帖子,發現你們的進步可不通常,各類案例示例層出不窮,一片欣欣向榮的景象!在這樣的氛圍下,我又來了分享的慾望,但願本身的一點積累能爲鴻蒙宇宙添磚加瓦。網絡
直播主題回顧:ide
考慮到不少同窗多是新手,這裏首先要談談交叉編譯的概念!post
交叉編譯是嵌入開發中的基礎概念,名字看起來高端大氣上檔次,但其本質仍是編譯,也就是把C/C++代碼編譯成可執行程序,和咱們初學C/C++語言時的 Hello World! 程序編譯幾乎徹底相同。學習
那麼,你可能會問,不一樣之處在哪裏?spa
不一樣之處僅僅是,Hello World! 在本機編譯,可執行程序在本機運行;而交叉編譯則是:程序在本機編譯,而可執行程序在設備運行(即:本機沒法直接運行交叉編譯獲得的二進制文件)。操作系統
對於大型嵌入式企業,開發環境通常分爲兩個部分:代碼編輯環境和代碼編譯環境。產品代碼位於代碼服務器上,每一個員工遠程登陸代碼服務器以後建立本身的代碼分支,以後就能夠進行代碼編輯和編譯了。其中,代碼編輯是在員工的工做PC上完成;而代碼編譯則是在服務器上完成。編譯獲得的二進制可執行程序,須要拷貝到工做PC上以後燒寫到設備中。設計
你們經過類比能夠發現,其實目前的鴻蒙設備開發方式就是企業級嵌入式產品的開發方式,只不過進行了縮減而已!代碼編輯和代碼編譯在「不一樣的機器上」,兩臺機器經過網絡互聯,交叉編譯獲得的二進制文件經過代碼編輯所在的環境燒寫到設備。3d
那麼,這有什麼問題嗎?調試
傳統的嵌入式開發方式對於程序老手來講,沒有任何問題,用起來遊刃有餘。可是,對於新手來講就多是個噩夢了。
你們能夠想一想,程序出問題後如何定位?
就目前鴻蒙設備開發的狀況來講,只有打印日誌這一招可用。
這一招最經常使用,可問題也很多。。。
固然,有同窗可能會說:「接個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),這樣就能夠達到個人目的了。
文章後續內容和相關附件能夠點擊下面的原文連接前往學習
原文連接:https://harmonyos.51cto.com/posts/2788#bkwz