李東山:如何讓 OpenHarmony 支持低功耗藍牙晶元 GR551x

来源:https://www.cnblogs.com/openharmony/archive/2022/05/12/16262897.html
-Advertisement-
Play Games

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


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

 

李東山
深圳市匯頂科技股份有限公司
系統軟體工程師

 

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

 

Q=OpenHarmony A=李東山


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 主幹。

 

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 繁榮生態。

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 前情提要: 該方法只適用於Windows10以上版本,Ubuntu直接可在微軟商店安裝 在這個網頁docs.microsoft.com/zh-cn/windo… 可以設置完成前5部,然後根據下麵具體操作。 ps:1.在連接中我們要打開powers ...
  • 五一5天小假期的結束大家休息好了嗎?上班了狀態回整的怎麼樣呢?阿裡云云發平臺給大家帶福利了呢,通過玩游戲把獎品帶回家。 雲開發平臺兩周年,0門檻部署上線4款熱門游戲,游戲暢玩還有AirPods耳機、筋膜槍等8種獎品任你挑啦!4款游戲只需要完成2個就可以抽獎呢,100%中獎;還額外有故事有獎徵集的板塊 ...
  • 一、引言 SQL Server有一些很好用的功能,只不過由於個人原因沒用過或者不記得怎麼用,導致需要花點時間用其它方式來實現。 二、好用小知識 2.1、FORMAT函數 1)時間格式化,如將當前日期格式化為2022-05-12: SELECT FORMAT(GETDATE(),'yyyy-MM-dd ...
  • 一、引言 A表數據同步至B表的場景很常見,比如一個公司有總部及分廠,它們使用相同的系統,只是賬套不同。此時,一些基礎數據如物料信息,只需要總部錄入即可,然後間隔一定時間同步至分廠,避免了重覆工作。 二、測試數據 CREATE TABLE StudentA ( ID VARCHAR(32), Name ...
  • 本文介紹什麼是 SQL 的聚集函數,如何利用它們彙總表的數據。這些函數很高效,它們返回結果一般比你在自己的客戶端應用程式中計算要快得多。 一、聚集函數 我們經常需要彙總數據而不用把它們實際檢索出來,為此 SQL 提供了專門的函數。使用這些函數,SQL 查詢可用於檢索數據,以便分析和報表生成。這種類型 ...
  • 本文介紹什麼是函數,DBMS 支持何種函數,以及如何使用這些函數;還將講解為什麼 SQL 函數的使用可能會帶來問題。 一、函數 與大多數其他電腦語言一樣,SQL 也可以用函數來處理數據。函數一般是在數據上執行的,為數據的轉換和處理提供了方便。 SQL 如何創建計算欄位 中用來去掉字元串尾的空格的 ...
  • 本文介紹什麼是計算欄位,如何創建計算欄位,我們用例子說明瞭計算欄位在字元串拼接和算術計算中的用途。以及如何從應用程式中使用別名引用它們。 一、計算欄位 存儲在資料庫表中的數據一般不是應用程式所需要的格式,下麵舉幾個例子。 需要顯示公司名,同時還需要顯示公司的地址,但這兩個信息存儲在不同的表列中。 城 ...
  • 轉載請標明出處,維權必究: https://www.cnblogs.com/tangZH/p/12543154.html Glide作為一個強大的圖片載入框架,已經被android官方使用,所以,明白Glide的載入流程以及原理對加深我們對glide的理解是很重要的。 本文基於glide 4.11 ...
一周排行
    -Advertisement-
    Play Games
  • 分組和樹形結構是不一樣的。 樹形結構是以遞歸形式存在。分組是以鍵值對存在的形式,類似於GroupBy這樣的形式。 舉個例子 ID NAME SEX Class 1 張三 男 1 2 李四 女 2 3 王二 男 1 當以Sex為分組依據時則是 Key Value 男 1 張三 男 1 3 王二 男 1 ...
  • NetCore中將SQLServer資料庫備份為Sql腳本 描述: 最近寫項目收到了一個需求, 就是將SQL Server資料庫備份為Sql腳本, 如果是My Sql之類的還好說, 但是在網上搜了一大堆, 全是教你怎麼操作SSMS的, 就很d疼! 解決方案: 通過各種查找資料, 還有一些老哥的幫助, ...
  • 我的Notion Clowd.Squirrel Squirrel.Windows 是一組工具和適用於.Net的庫,用於管理 Desktop Windows 應用程式的安裝和更新。 Squirrel.Windows 對 Windows 應用程式的實現語言沒有任何要求,甚至無需服務端即可完成增量更新。 ...
  • 轉載請註明來源 https://www.cnblogs.com/brucejiao/p/16188865.html 謝謝! 轉載請註明來源 https://www.cnblogs.com/brucejiao/p/16188865.html 謝謝! 轉載請註明來源 https://www.cnblog ...
  • 1. Netty源碼研究筆記(3)——Channel系列 依舊是通過先縱向再橫向的研究方法,在開篇中,我們發現不管是Sever還是Client,最終的啟動是通過調用channel的對應方法來完成的,而這個動作實際在channel綁定的eventLoop中執行。 接下來,我們繼續EchoSever、E ...
  • 大家好,今天給大家介紹一款輕量、快速、穩定可編排的組件式規則引擎框架LiteFlow。 一、LiteFlow的介紹 LiteFlow官方網站和代碼倉庫地址 官方網站:https://yomahub.com/liteflow Gitee托管倉庫:https://gitee.com/dromara/li ...
  • 我使用Spring AOP實現了用戶操作日誌功能 今天答辯完了,復盤了一下系統,發現還是有一些東西值得拿出來和大家分享一下。 需求分析 系統需要對用戶的操作進行記錄,方便未來溯源 首先想到的就是在每個方法中,去實現記錄的邏輯,但是這樣做肯定是不現實的,首先工作量大,其次違背了軟體工程設計原則(開閉原 ...
  • 《零基礎學Java》 繪製幾何圖形 Java可以分別使用 Graphics 和 Graphics2D 繪製圖形,Graphics類 使用不同的方法繪製不同的圖形(drawLine()方法可f以繪製線、drawRect()方法用於繪製矩形、drawOval()方法用於繪製橢圓形)。 Graphics類 ...
  • 本期教程人臉識別第三方平臺為虹軟科技,本文章講解的是人臉識別RGB活體追蹤技術,免費的功能很多可以自行搭配,希望在你看完本章課程有所收穫。 ...
  • 很多人都喜歡使用黑色的主題樣式,包括我自己,使用了差不多三年的黑色主題,但是個人覺得在進行視窗轉換的時候很廢眼睛。 比如IDEA是全黑的,然後需要看PDF或者WORD又變成白色的了,這樣來回切換導致眼睛很累,畢竟現在網頁以及大部分軟體的界面都是白色的。那麼還是老老實實的使用原來比較順眼的模式吧。 1 ...