李東山:如何讓 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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...