目前,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 就進(jìn)入了我的研究范疇。這幾年 Python 借助 AI 的興起進(jìn)入大眾視野,簡單性、易學(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 剪裁而來,并做了擴(kuò)展,基本定義成了一個微型嵌入式設(shè)備上的操作系統(tǒng)。那么,怎么開始呢,做選擇真的很難!于是我開始整理思路,我想干什么?!之后有了下面的架構(gòu)圖。
很顯然,我希望提供 OpenHarmony 設(shè)備開發(fā)的其它方式,而不是用 Python 替換 C 語言!所以,我的第一個里程碑(Milestone)是獲得一個可以在 OpenHarmony 設(shè)備(Hi3861 開發(fā)板)上運(yùn)行的 Python 解釋器!有了這個 Python 解釋器,接下來就可以設(shè)計 Python 版的 OpenHarmony 系統(tǒng)開發(fā)接口了。
確定了目標(biāo)之后,接下來的問題就是:究竟是用公版 Python 還是 MicroPython?
通過兩者代碼的對比閱讀,我發(fā)現(xiàn) MicroPython 居然在解釋器部分對公版 Python 也做了剪裁。我暫時也沒有確切答案,不過從代碼實現(xiàn)可以看出 MicroPython 是為了適配更多低配置的硬件而做了取舍!顯然,很多東西人家都考慮過了!我認(rèn)為 OpenHarmony 輕量設(shè)備和小型設(shè)備的定位更適用 MicroPython。
操作過程
通過 2 天的手術(shù)的改造,能夠運(yùn)行的版本(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. 運(yùn)行結(jié)果如下:
后記
目前僅僅能夠運(yùn)行基本的 Python 代碼,大概率還存在很多需要解決的問題。希望大家都來試玩我的這個方案,多找 Bug,多提 Issue。
責(zé)任編輯:haq
-
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86227 -
鴻蒙系統(tǒng)
+關(guān)注
關(guān)注
183文章
2639瀏覽量
67732 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
2054瀏覽量
32171 -
OpenHarmony
+關(guān)注
關(guān)注
27文章
3835瀏覽量
18178
原文標(biāo)題:用Python開發(fā)OpenHarmony設(shè)備程序——初體驗
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
開源鴻蒙開發(fā)必備!OpenHarmony替換Full SDK全攻略

鴻蒙北向開發(fā)OpenHarmony5.0 DevEco Studio開發(fā)工具安裝與配置

零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

鴻蒙北向開發(fā)OpenHarmony4.1 DevEco Studio開發(fā)工具安裝與配置

ID讀卡器Python小程序開發(fā)
OpenHarmony程序分析框架論文入選ICSE 2025

第三屆OpenHarmony技術(shù)大會 “OpenHarmony開發(fā)者激勵計劃”授牌儀式圓滿舉行

基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony

OpenHarmony 明星開發(fā)板和應(yīng)用招募啟動,等你來!
基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony
Openharmony軟件評估指南-米爾瑞芯微RK3568開發(fā)板
第二屆大會回顧第25期 | OpenHarmony上的Python設(shè)備應(yīng)用開發(fā)

【迅為RK3568開發(fā)板】OpenHarmony學(xué)習(xí)開發(fā)系列教程(第1期 北向基礎(chǔ)篇一)
鴻蒙OpenHarmony南向/北向快速開發(fā)教程-迅為RK3568開發(fā)板
如何在Openharmony中實現(xiàn)USB復(fù)合設(shè)備

評論