李東山:如何讓 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 Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...