目前,OpenHarmony 設(shè)備開發(fā)處于嵌入式開發(fā)階段,并且 C 語(yǔ)言在嵌入式開發(fā)的過(guò)程中占有十分重要的地位。在與 OpenHarmony 社區(qū)的朋友溝通交流中,我萌生了為 OpenHarmony 設(shè)備開發(fā)提供更簡(jiǎn)潔的開發(fā)方式(簡(jiǎn)單的編程語(yǔ)言,簡(jiǎn)單的開發(fā)環(huán)境)的想法。同時(shí)也降低了門檻,使得更多的開發(fā)者可以上手 OpenHarmony。這促成了我成立 Python SIG(Special Interest Group,特別興趣小組,OpenHarmony 社區(qū)中最基本的組織形式)的初衷。首先,我需要定位一款編程語(yǔ)言,受眾廣且學(xué)習(xí)門檻低。
Python 就進(jìn)入了我的研究范疇。這幾年 Python 借助 AI 的興起進(jìn)入大眾視野,簡(jiǎn)單性、易學(xué)性深受廣大開發(fā)者歡迎,很多小學(xué)生都能夠用它來(lái)編程。我調(diào)研了 Python 實(shí)現(xiàn)(Python 是開源的,可以通過(guò)源碼了解實(shí)現(xiàn)),發(fā)現(xiàn)公版 Python 和 MicroPython 都可以作為起點(diǎn)(Baseline),畢竟不需要照著 Python 規(guī)范寫一個(gè)解釋器出來(lái)!
然而,困難還是有的,這兩種實(shí)現(xiàn)都有非常多的依賴,而且設(shè)計(jì)目標(biāo)又分別不同:公版 Python 是一個(gè)大而全的系統(tǒng)(解釋器,庫(kù)等),目標(biāo)是基于豐富的資源自由發(fā)揮;MicroPython 從公版 Python 剪裁而來(lái),并做了擴(kuò)展,基本定義成了一個(gè)微型嵌入式設(shè)備上的操作系統(tǒng)。那么,怎么開始呢,做選擇真的很難!于是我開始整理思路,我想干什么?!之后有了下面的架構(gòu)圖。
很顯然,我希望提供 OpenHarmony 設(shè)備開發(fā)的其它方式,而不是用 Python 替換 C 語(yǔ)言!所以,我的第一個(gè)里程碑(Milestone)是獲得一個(gè)可以在 OpenHarmony 設(shè)備(Hi3861 開發(fā)板)上運(yùn)行的 Python 解釋器!有了這個(gè) Python 解釋器,接下來(lái)就可以設(shè)計(jì) Python 版的 OpenHarmony 系統(tǒng)開發(fā)接口了。
確定了目標(biāo)之后,接下來(lái)的問(wèn)題就是:究竟是用公版 Python 還是 MicroPython?
通過(guò)兩者代碼的對(duì)比閱讀,我發(fā)現(xiàn) MicroPython 居然在解釋器部分對(duì)公版 Python 也做了剪裁。我暫時(shí)也沒(méi)有確切答案,不過(guò)從代碼實(shí)現(xiàn)可以看出 MicroPython 是為了適配更多低配置的硬件而做了取舍!顯然,很多東西人家都考慮過(guò)了!我認(rèn)為 OpenHarmony 輕量設(shè)備和小型設(shè)備的定位更適用 MicroPython。
操作過(guò)程
通過(guò) 2 天的手術(shù)的改造,能夠運(yùn)行的版本(DTPython)就有了!!
使用方式如下:
1. 下載文末附件中的 libdtpython.a,并將其拷貝到 code-1.0vendorhisihi3861hi3861uildlibs 目錄下,如圖:
2. 【可選】編寫 Python 代碼(目前未提供任何庫(kù)支持),并使用文末附件中的 Txt2Str 工具將其轉(zhuǎn)換為 C 字符串,用法如下:
說(shuō)明:
Txt2Str 將 Python 代碼用 C 字符串的形式存儲(chǔ)到 C 文件中(如上圖中的 test.c)
將轉(zhuǎn)換得到的 C 文件加入工程中即可在 C 代碼中使用 Python 代碼(可參考文末附件中的示例)
注意:目前還沒(méi)有簡(jiǎn)單的方法直接將 Python 源文件燒寫到設(shè)備中,因此才需要上述步驟。
3. 在設(shè)備開發(fā)中使用 Python 代碼,示例如下:
4. 運(yùn)行結(jié)果如下:
后記
目前僅僅能夠運(yùn)行基本的 Python 代碼,大概率還存在很多需要解決的問(wèn)題。希望大家都來(lái)試玩我的這個(gè)方案,多找 Bug,多提 Issue。
責(zé)任編輯:haq
-
python
+關(guān)注
關(guān)注
56文章
4798瀏覽量
84810 -
鴻蒙系統(tǒng)
+關(guān)注
關(guān)注
183文章
2636瀏覽量
66443 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
1979瀏覽量
30280 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3728瀏覽量
16395
原文標(biāo)題:用Python開發(fā)OpenHarmony設(shè)備程序——初體驗(yàn)
文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論