目前,OpenHarmony 設(shè)備開發(fā)處于嵌入式開發(fā)階段,并且 C 語言在嵌入式開發(fā)的過程中占有十分重要的地位。在與 OpenHarmony 社區(qū)的朋友溝通交流中,我萌生了為 OpenHarmony 設(shè)備開發(fā)提供更簡潔的開發(fā)方式(簡單的編程語言,簡單的開發(fā)環(huán)境)的想法。同時也降低了門檻,使得更多的開發(fā)者可以上手 OpenHarmony。這促成了我成立 Python SIG(Special Interest Group,特別興趣小組,OpenHarmony 社區(qū)中最基本的組織形式)的初衷。首先,我需要定位一款編程語言,受眾廣且學(xué)習(xí)門檻低。
Python 就進入了我的研究范疇。這幾年 Python 借助 AI 的興起進入大眾視野,簡單性、易學(xué)性深受廣大開發(fā)者歡迎,很多小學(xué)生都能夠用它來編程。我調(diào)研了 Python 實現(xiàn)(Python 是開源的,可以通過源碼了解實現(xiàn)),發(fā)現(xiàn)公版 Python 和 MicroPython 都可以作為起點(Baseline),畢竟不需要照著 Python 規(guī)范寫一個解釋器出來!
然而,困難還是有的,這兩種實現(xiàn)都有非常多的依賴,而且設(shè)計目標(biāo)又分別不同:公版 Python 是一個大而全的系統(tǒng)(解釋器,庫等),目標(biāo)是基于豐富的資源自由發(fā)揮;MicroPython 從公版 Python 剪裁而來,并做了擴展,基本定義成了一個微型嵌入式設(shè)備上的操作系統(tǒng)。那么,怎么開始呢,做選擇真的很難!于是我開始整理思路,我想干什么?!之后有了下面的架構(gòu)圖。

很顯然,我希望提供 OpenHarmony 設(shè)備開發(fā)的其它方式,而不是用 Python 替換 C 語言!所以,我的第一個里程碑(Milestone)是獲得一個可以在 OpenHarmony 設(shè)備(Hi3861 開發(fā)板)上運行的 Python 解釋器!有了這個 Python 解釋器,接下來就可以設(shè)計 Python 版的 OpenHarmony 系統(tǒng)開發(fā)接口了。
確定了目標(biāo)之后,接下來的問題就是:究竟是用公版 Python 還是 MicroPython?
通過兩者代碼的對比閱讀,我發(fā)現(xiàn) MicroPython 居然在解釋器部分對公版 Python 也做了剪裁。我暫時也沒有確切答案,不過從代碼實現(xiàn)可以看出 MicroPython 是為了適配更多低配置的硬件而做了取舍!顯然,很多東西人家都考慮過了!我認為 OpenHarmony 輕量設(shè)備和小型設(shè)備的定位更適用 MicroPython。
操作過程
通過 2 天的手術(shù)的改造,能夠運行的版本(DTPython)就有了!!
使用方式如下:
1. 下載文末附件中的 libdtpython.a,并將其拷貝到 code-1.0vendorhisihi3861hi3861uildlibs 目錄下,如圖:
2. 【可選】編寫 Python 代碼(目前未提供任何庫支持),并使用文末附件中的 Txt2Str 工具將其轉(zhuǎn)換為 C 字符串,用法如下:

說明:
Txt2Str 將 Python 代碼用 C 字符串的形式存儲到 C 文件中(如上圖中的 test.c)
將轉(zhuǎn)換得到的 C 文件加入工程中即可在 C 代碼中使用 Python 代碼(可參考文末附件中的示例)
注意:目前還沒有簡單的方法直接將 Python 源文件燒寫到設(shè)備中,因此才需要上述步驟。
3. 在設(shè)備開發(fā)中使用 Python 代碼,示例如下:

4. 運行結(jié)果如下:

后記
目前僅僅能夠運行基本的 Python 代碼,大概率還存在很多需要解決的問題。希望大家都來試玩我的這個方案,多找 Bug,多提 Issue。
責(zé)任編輯:haq
-
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90036 -
鴻蒙系統(tǒng)
+關(guān)注
關(guān)注
183文章
2642瀏覽量
69852 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2153瀏覽量
36053 -
OpenHarmony
+關(guān)注
關(guān)注
33文章
3952瀏覽量
21103
原文標(biāo)題:用Python開發(fā)OpenHarmony設(shè)備程序——初體驗
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于凌羽派的OpenHarmony北向應(yīng)用開發(fā):Hello World 示例應(yīng)用
【原創(chuàng)】OpenHarmony系統(tǒng)投屏工具軟件 - OpenHarmony_OHScrcpy使用推薦
觸覺智能RK3576開發(fā)板OpenHarmony開源鴻蒙系統(tǒng)USB控制傳輸功能示例
如何用Arduino Nano/UNO R3開發(fā)板給另一個Arduino IDE不能下載的Arduino Nano/UNO R3開發(fā)板重新燒錄引導(dǎo)程序bootlaoder
開源鴻蒙開發(fā)必備!OpenHarmony替換Full SDK全攻略
如何用FastMCP快速開發(fā)自己的MCP Server?
請問下,openharmony支持哪一款龍芯的開發(fā)板?有沒有開源的龍芯的openharmony源碼?
鴻蒙北向開發(fā)OpenHarmony5.0 DevEco Studio開發(fā)工具安裝與配置
零基礎(chǔ)入門:如何在樹莓派上編寫和運行Python程序?
北京迅為RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)內(nèi)核HDF驅(qū)動框架架構(gòu)
如何用Python開發(fā)OpenHarmony設(shè)備程序
評論