目前,OpenHarmony 設備開發處于嵌入式開發階段,并且 C 語言在嵌入式開發的過程中占有十分重要的地位。在與 OpenHarmony 社區的朋友溝通交流中,我萌生了為 OpenHarmony 設備開發提供更簡潔的開發方式(簡單的編程語言,簡單的開發環境)的想法。同時也降低了門檻,使得更多的開發者可以上手 OpenHarmony。這促成了我成立 Python SIG(Special Interest Group,特別興趣小組,OpenHarmony 社區中最基本的組織形式)的初衷。首先,我需要定位一款編程語言,受眾廣且學習門檻低。
Python 就進入了我的研究范疇。這幾年 Python 借助 AI 的興起進入大眾視野,簡單性、易學性深受廣大開發者歡迎,很多小學生都能夠用它來編程。我調研了 Python 實現(Python 是開源的,可以通過源碼了解實現),發現公版 Python 和 MicroPython 都可以作為起點(Baseline),畢竟不需要照著 Python 規范寫一個解釋器出來!
然而,困難還是有的,這兩種實現都有非常多的依賴,而且設計目標又分別不同:公版 Python 是一個大而全的系統(解釋器,庫等),目標是基于豐富的資源自由發揮;MicroPython 從公版 Python 剪裁而來,并做了擴展,基本定義成了一個微型嵌入式設備上的操作系統。那么,怎么開始呢,做選擇真的很難!于是我開始整理思路,我想干什么?!之后有了下面的架構圖。
很顯然,我希望提供 OpenHarmony 設備開發的其它方式,而不是用 Python 替換 C 語言!所以,我的第一個里程碑(Milestone)是獲得一個可以在 OpenHarmony 設備(Hi3861 開發板)上運行的 Python 解釋器!有了這個 Python 解釋器,接下來就可以設計 Python 版的 OpenHarmony 系統開發接口了。
確定了目標之后,接下來的問題就是:究竟是用公版 Python 還是 MicroPython?
通過兩者代碼的對比閱讀,我發現 MicroPython 居然在解釋器部分對公版 Python 也做了剪裁。我暫時也沒有確切答案,不過從代碼實現可以看出 MicroPython 是為了適配更多低配置的硬件而做了取舍!顯然,很多東西人家都考慮過了!我認為 OpenHarmony 輕量設備和小型設備的定位更適用 MicroPython。
操作過程
通過 2 天的手術的改造,能夠運行的版本(DTPython)就有了!!
使用方式如下:
1. 下載文末附件中的 libdtpython.a,并將其拷貝到 code-1.0vendorhisihi3861hi3861uildlibs 目錄下,如圖:
2. 【可選】編寫 Python 代碼(目前未提供任何庫支持),并使用文末附件中的 Txt2Str 工具將其轉換為 C 字符串,用法如下:
說明:
Txt2Str 將 Python 代碼用 C 字符串的形式存儲到 C 文件中(如上圖中的 test.c)
將轉換得到的 C 文件加入工程中即可在 C 代碼中使用 Python 代碼(可參考文末附件中的示例)
注意:目前還沒有簡單的方法直接將 Python 源文件燒寫到設備中,因此才需要上述步驟。
3. 在設備開發中使用 Python 代碼,示例如下:
4. 運行結果如下:
后記
目前僅僅能夠運行基本的 Python 代碼,大概率還存在很多需要解決的問題。希望大家都來試玩我的這個方案,多找 Bug,多提 Issue。
責任編輯:haq
-
python
+關注
關注
56文章
4811瀏覽量
85125 -
鴻蒙系統
+關注
關注
183文章
2638瀏覽量
66838 -
HarmonyOS
+關注
關注
79文章
1985瀏覽量
30739 -
OpenHarmony
+關注
關注
25文章
3755瀏覽量
16748
原文標題:用Python開發OpenHarmony設備程序——初體驗
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
ID讀卡器Python小程序開發
OpenHarmony程序分析框架論文入選ICSE 2025
![<b class='flag-5'>OpenHarmony</b><b class='flag-5'>程序</b>分析框架論文入選ICSE 2025](https://file1.elecfans.com/web3/M00/04/96/wKgZO2d2KGCAUcJVAAAk9btwCMQ998.png)
基于ArkTS語言的OpenHarmony APP應用開發:HelloOpenharmony
![基于ArkTS語言的<b class='flag-5'>OpenHarmony</b> APP應用<b class='flag-5'>開發</b>:Hello<b class='flag-5'>Openharmony</b>](https://file.elecfans.com/web2/M00/26/21/pYYBAGG5jjSALfrEAAAwAa9Oig8799.png)
OpenHarmony 明星開發板和應用招募啟動,等你來!
第二屆大會回顧第25期 | OpenHarmony上的Python設備應用開發
![第二屆大會回顧第25期 | <b class='flag-5'>OpenHarmony</b>上的<b class='flag-5'>Python</b><b class='flag-5'>設備</b>應用<b class='flag-5'>開發</b>](https://file1.elecfans.com/web2/M00/04/4E/wKgZombNTbKAGXSVAAARd6jESHY243.jpg)
【迅為RK3568開發板】OpenHarmony學習開發系列教程(第1期 北向基礎篇一)
鴻蒙OpenHarmony南向/北向快速開發教程-迅為RK3568開發板
華為云開發者桌面全新發布 CodeArts IDE for Python,極致優雅云原生開發體驗
![華為云<b class='flag-5'>開發</b>者桌面全新發布 CodeArts IDE for <b class='flag-5'>Python</b>,極致優雅云原生<b class='flag-5'>開發</b>體驗](https://file1.elecfans.com/web2/M00/E4/97/wKgaomY8-YGAHcqnAAXBzdd5eGs799.png)
鴻蒙OpenHarmony【標準系統編寫“Hello World”程序】 (基于RK3568開發板)
![鴻蒙<b class='flag-5'>OpenHarmony</b>【標準系統編寫“Hello World”<b class='flag-5'>程序</b>】 (基于RK3568<b class='flag-5'>開發</b>板)](https://file1.elecfans.com/web2/M00/C5/CD/wKgZomYCdwyAIFf5AAB_7E1pFms943.jpg)
【六】Purple Pi OH開發板帶你7天入門OpenHarmony!
![【六】Purple Pi OH<b class='flag-5'>開發</b>板帶你7天入門<b class='flag-5'>OpenHarmony</b>!](https://file1.elecfans.com/web2/M00/8F/50/wKgZomTMciWAD54NAABOGP2pQZY452.png)
評論