目前,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文章
4821瀏覽量
85663 -
鴻蒙系統
+關注
關注
183文章
2638瀏覽量
67377 -
HarmonyOS
+關注
關注
79文章
2005瀏覽量
31682 -
OpenHarmony
+關注
關注
26文章
3795瀏覽量
17652
原文標題:用Python開發OpenHarmony設備程序——初體驗
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
零基礎入門:如何在樹莓派上編寫和運行Python程序?

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

基于ArkTS語言的OpenHarmony APP應用開發:HelloOpenharmony

OpenHarmony 明星開發板和應用招募啟動,等你來!
第二屆大會回顧第25期 | OpenHarmony上的Python設備應用開發

【迅為RK3568開發板】OpenHarmony學習開發系列教程(第1期 北向基礎篇一)
鴻蒙OpenHarmony南向/北向快速開發教程-迅為RK3568開發板
華為云開發者桌面全新發布 CodeArts IDE for Python,極致優雅云原生開發體驗

鴻蒙OpenHarmony【標準系統編寫“Hello World”程序】 (基于RK3568開發板)

評論