李東山——如何讓OpenHarmony支援低功耗藍芽晶片GR551x

OpenHarmony社群 發表於 2022-05-18

李東山——如何讓OpenHarmony支援低功耗藍芽晶片GR551x

編者按:在 OpenHarmony 生態發展過程中,湧現了大批優秀的程式碼貢獻者,本專題旨在表彰貢獻、分享經驗,文中內容來自嘉賓訪談,不代表 OpenHarmony 工作委員會觀點。

大家好,我是李東山,來自深圳市匯頂科技股份有限公司,目前是 BLE 產品開發部的一名研發工程師,從 2021 年 9 月我開始承擔 BLE SoC GR551x 接入 OpenAtom OpenHarmony(簡稱“OpenHarmony”)生態的適配任務,截止今年 1 月程式碼已經通過評審併合入主幹,很高興和團隊一起共同見證從 0 到 1,順利合併入主幹,這是我首次參與這種大型開源專案,我希望將專案開發過程中的感受和經歷分享給大家。

Q1 作為開發領域知名的技術大牛,您最初為什麼會選擇加入OpenHarmony生態、參與開源共建呢?您認為,OpenHarmony專案最吸引人的點在哪裡?

OpenHarmony 是一款面向全場景、全連線、全智慧時代的分散式作業系統,它面向萬物互聯,非常契合我們 BLE SoC 產品應用方向,選擇加入 OpenHarmony 生態,希望能一起參與共建 OpenHarmony 生態系統,為促進萬物互聯和千行百業的繁榮發展貢獻我們的一份力量。

OpenHarmony 程式碼遵循 Apache 2.0 等商業友好的開源協議,所有企業、機構與個人均可基於 OpenHarmony 開原始碼,結合自身優勢,去做各領域的作業系統發行版及終端產品。

Q2 您在什麼時候組建了OpenHarmony開源專案團隊?通過多久完成了GR5515 Starter Kit開發板的適配,核心程式碼已合入主幹,現在被OpenHarmony PMC委員會推選為“程式碼月度貢獻之星”,真的太了不起了!您方便給我們介紹一下這個產品嗎,或者這段經歷嗎?這麼短時間達成了這樣好的效果,請問您的“祕訣”都有哪些呢?

我們是在 2021 年的 9 月開始投入資源適配 OpenHarmony。經過兩個多月的努力,將我們首款 Bluetooth LE 輕量裝置晶片 GR551x 系列 SoC 適配上 OpenHarmony,2021 年 11 月 18 日順利通過 OpenHarmony 相容性測評, 並於 2022 年 1 月 7 日正式合入 OpenHarmony 主幹。

李東山——如何讓OpenHarmony支援低功耗藍芽晶片GR551x

$$ GR5515 Starter Kit 適配程式碼倉庫 $$

能夠在短時間內完成開發板適配工作不僅是因為我們生態小組小夥伴們齊心協力,通力配合, 還得益於 OpenHarmony 完備的開發平臺和工具鏈,優秀的程式碼框架,豐富的文件資源。剛開始我們的倉庫在 SIG 上孵化,兩次畢業答辯評審後程式碼合入主幹,非常感謝社群的老師們給予了很多專業指導和支援。

Q3 能開發出這麼一個優秀的產品,將核心程式碼合入主幹,您和您的團隊一定付出了很多。可以請您給我們分享一下,開發這個產品的整個過程,包括前期、中期、後期,您們具體都做了哪些工作,投入了多少人力和資源嗎?

開發板適配前期,我們對 OpenHarmony 輕量系統進行了學習和調研,充分評估可行性後開始嘗試適配。萬事開頭難,剛開始適配 V1.1.2-LTS 版本,從搭建開發環境、熟悉構建系統、移植第一行程式碼,解決了很多難題,也踩過很多坑。終於,兩週後系統在我們的 SoC 上穩定執行起來了。

專案中期我們升級到了 V3.0.0-LTS,3.0 版本引入了許多新特性,我們開始適配 HDF 驅動、BLE 介面、檔案系統、低功耗等,並通過了相容性測評。

專案後期我們與主幹 master 版本對齊,master 版本引入 board 與 soc 分離的先進設計理念,我們對程式碼框架進行了大量重構優化,程式碼架構和規範都符合要求後,程式碼合入 OpenHarmony 主幹。

匯頂科技非常看好 OpenHarmony,我們持續投入人力在該專案上,目前基本完成了首款 BLE Soc GR5515 晶片的適配工作,未來我們也會對適配的程式碼進行持續優化和維護,同時也會積極參與輕量系統的圖形顯示和 BLE IoT 方向的共建工作。

Q4 在整個開發程式中,您和您的團隊遇到過哪些技術上或其他方面的難題?這些難題又是如何被逐一解決?在這些難題被解決的過程中,您總結了哪些寶貴的經驗or教訓?

在開發初期,網上幾乎沒有對 ARM 架構的輕量系統移植適配的指導文件,構建環境也很複雜,可參考的開發板就 3 塊,對於我這種剛接觸 OpenHarmony 的小白來說,不知道怎麼去加入我們的程式碼,不知道如何構建,差點被遇到的各種困難“勸退”。好在 OpenHarmony 自帶了一款基於 RSIC-V 架構的開發板樣例,通過深入研究其編譯框架和適配細節後,我們將 SDK 移植到 OpenHarmony 並構建成功。

OpenHarmony 對 ARM 和 RSIC-V 架構支援已經非常全面,Cortex-M 核心相關的 arch 移植 liteos-m 已經幫我們做好,移植一款新的開發板只需重點聚焦在編譯構建、BSP 移植、XTS 測試、業務功能開發上。

Q5 加入OpenHarmony生態以來,您最大的驚喜是什麼?或者有哪些具體的收穫?

自從加入 OpenHarmony 生態以來,我切身感受到它發展的如此之快,從當初的 1.0 版本迭代到如今的 3.0 版本,每個版本都會帶來許多實用的更新,開發板越來越多,文件也越來越豐富,社群交流日漸活躍,開發者參與共建也越來越容易。

我也一直在持續學習 OpenHarmony,學習過程中瞭解到了很多程式碼架構上的先進理念,為自己平時的開發工作帶來了很大的幫助,我也一直堅持通過部落格分享我的學習經歷和開源移植案例。

Q6 期待未來OpenHarmony哪些方面能夠得到改善、提供更多支援?

OpenHarmony 經過一年多的快速發展,編譯構建、程式碼架構、文件支援、社群建設方面都做得非常優秀。我個人期待,OpenHarmony 其配套 IDE DevEco Device Tool 能早點普及,推動眾多的開發板適配並支援,這樣有利於給開發者和終端客戶帶來更便捷的體驗。

Q7 OpenHarmony目前仍處在開發探索階段,很多共建單位和生態夥伴還不清楚開源專案的玩法,或不知該如何著手進行開發。可以請您給大家分享一條,您認為最重要或最值得分享的心得嗎?

開源專案的輸出將為開發者提供更多的學習途徑,點亮眾多開發者前行的道路。我在開發過程中遇到了很多技術上的困難,尋求不到別人的幫助時,通過研讀別人的開原始碼找到了靈感和思路,開源其實也是一種互相學習,共同進步的高效途徑。

Q8 開放性問題,可以暢所欲言,請問您還有話想告訴大家?

非常感謝 OpenHarmony,為我們提供瞭如此優秀的作業系統,很高興自己能夠參與開源共建,為開源貢獻出自己的一份微薄力量。從剛開始的“懵懂”小白,跟著 OpenHarmony 一起成長,雖然過程中充滿了挑戰,但也收穫很多。我真切感受到 OpenHarmony 的迅猛發展,希望有更多企業、開發者一起參與共建 OpenHarmony 繁榮生態。

李東山——如何讓OpenHarmony支援低功耗藍芽晶片GR551x

李東山——如何讓OpenHarmony支援低功耗藍芽晶片GR551x