色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

如何適配OpenHarmony自有音頻框架ADM?

OpenAtom OpenHarmony ? 來源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-05-16 09:29 ? 次閱讀

OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)正在蓬勃發(fā)展,但開源社區(qū)在國內(nèi)還是一個年輕的新生事物,如何參與社區(qū)開源貢獻已經(jīng)成為開發(fā)者們越來越關心的話題。中國科學院軟件研究所的黃吉老師將以一個開發(fā)者的視角給大家闡述深度參與到 OpenHarmony 社區(qū)的一些心得體會。

Q1

請簡要介紹下自己,以及所在開發(fā)團隊

大家好,我叫黃吉,目前就職于中國科學院軟件研究所(以下簡稱“中科院軟件所”),在中科院軟件所負責 OpenHarmony 移植開發(fā)相關工作。中科院軟件所團隊在 OpenHarmony 項目組中主要負責 OpenHarmony 的技術研發(fā)、技術支持、社區(qū)支持、SIG 倉 CI 門禁支持及維護、活動營銷支撐、及其他社區(qū)治理相關的工作。

Q2

作為開發(fā)領域知名的技術大牛,您最初為什么會選擇加入OpenHarmony生態(tài)、參與開源共建呢?您認為,OpenHarmony項目最吸引人的點在哪里?

大牛談不上,我的技術能力、專業(yè)認識等各方面需要學習的地方還有很多。我認為這個選擇是雙向的,一方面我被 OpenHarmony 項目積極的開源精神深深吸引,感覺為開源社區(qū)貢獻代碼真的是一件很酷的事情,內(nèi)心有參與 OpenHarmony 生態(tài)的主觀動力;另一方面是 OpenHarmony 社區(qū)秉持開放包容的宗旨,接納了很多普通開發(fā)者,我才會有機會去了解 OpenHarmony 項目并嘗試為其貢獻代碼。開源共建也是 OpenHarmony 項目最吸引人的重要特點。現(xiàn)如今 OpenHarmony 項目為國內(nèi)開源之路邁出了堅實的一步,這條路可能走得沒那么快,但它確實勇敢地踏出了腳步,這就足夠了。

Q3

您在什么時候加入了OpenHarmony開源項目團隊?通過多久研發(fā)了RK3568的ADM驅動,合入主干上千行代碼,現(xiàn)在被評為代碼月度貢獻之星,真的太了不起了!您方便給我們介紹一下這個產(chǎn)品嗎,或者這段經(jīng)歷嗎?這么短時間達成了這樣好的效果,請問您的“秘訣”都有哪些呢?

我是在 2021 年 2 月份的時候加入 OpenHarmony 開源項目團隊的。當時的 OpenHarmony 還只有輕量及小型系統(tǒng),如今標準型系統(tǒng)的能力已經(jīng)趨于完善了,并且有了自己的 hap 應用開發(fā)工具。可以看到 OpenHarmony 的能力是在不斷快速迭代、演進及完善。

回首 Dayu200 開發(fā)板的 ADM(Audio Device Model,音頻設備模型)開發(fā)過程,是充滿喜悅、充滿收獲的。ADM 是 HDF(OpenHarmony Driver Foundation)下面的一個音頻子模塊,ADM 已經(jīng)支持了 Hi3516DV300 等開發(fā)板,而我們做的這塊就是對 Dayu200 開發(fā)板的適配。在我們做適配之前,音頻驅動完全依賴于 TinyALSA 庫,現(xiàn)在將其完全 HDF 化,不僅解決了依賴問題,還具有里程碑意義,為其他第三方開發(fā)板的移植提供了參考。適配過程中,我們發(fā)現(xiàn)從零開始實現(xiàn)接口是不現(xiàn)實的,造輪子不僅需要考慮穩(wěn)定性、音頻編解碼、格式匹配、DMA 傳輸?shù)榷喾矫娴臇|西,而且工作量巨大,也不利于后續(xù)的維護,因此我們另辟蹊徑。采用 Linux 原生函數(shù)來進行適配,其中 Codec 層通過注冊 RK809 原生對象來獲取操作 I2C 總線的對象,然后傳入對應的 regmap 函數(shù)來進行寄存器讀寫操作;DAI 層通過注冊 RK3568 原生對象來獲取操作 I2S 總線的對象,然后傳入對應的 regmap 函數(shù)來進行 I2S 寄存器讀寫操作;而 DMA 部分則是通過 Linux原生的 dma_engine 相關函數(shù),按照規(guī)范的流程來完成請求 DMA 通道,配置 DMA 通道,預處理 DMA 通道,DMA 數(shù)據(jù)提交,DMA 數(shù)據(jù)處理等一系列的操作。因為廠商一般都會對內(nèi)核部分進行維護,并且其硬件外設都由內(nèi)核驅動進行管理,使用 Linux 原生接口就相當于搭了一座橋,把上層框架與內(nèi)核驅動聯(lián)系了起來,維護起來更容易了。同時,這種適配思路和方法是獨創(chuàng)性的,是十分具有借鑒意義的。

如果說有什么秘訣的話,那就是一往無前的勇氣、不屈不撓的毅力以及永無止境的求知欲。遇到問題是再尋常不過的事情了,“長風破浪會有時,直掛云帆濟滄海”,唯有迎難而上方可解決難題。有時候很可能多條路都走不通,有時候會有挫敗感,但堅持的毅力會帶我們走出去,慢慢找到新的方向。當然,還有很多東西是沒接觸過或者不甚了解的,但求知欲會推著我們前進,推著我們主動去學習,去了解未知,去向身邊的人求教,最終幫助我們的成長。

Q4

能開發(fā)出這么一個優(yōu)秀的產(chǎn)品,將核心代碼合入主干,您和您的團隊一定付出了很多。可以給我們分享一下,開發(fā)這個產(chǎn)品的整個過程,包括前期、中期、后期,您們具體都做了哪些工作,投入了多少人力和資源?

Dayu200 開發(fā)板基于 OpenHarmony 的移植工作是由潤和軟件主導,社區(qū)的多家成員單位的同事深度參與其中,有華為、潤和軟件、深開鴻、中科院軟件所等。中科院軟件所團隊承接了移植 ADM 模塊的任務 。接下任務后,我們聯(lián)系到了華為和潤和軟件的技術人員,獲取到了目標開發(fā)板的芯片、原理圖等研發(fā)必要的資料,隨后熟悉硬件的參數(shù)設計、芯片寄存器配置等信息,并且逐漸搭建代碼框架。熟悉過程其實花費的時間和精力非常多,對于完全不清楚的結構,需要一點一點閱讀文檔,遇到不清楚的細節(jié)問題,還要聯(lián)系開發(fā)人員一點一點對齊,這是一個考驗耐心的過程。中科院軟件所團隊在整個開發(fā)過程中一直與其他各單位同事保持著緊密的溝通,幾乎每天都會組織會議一起討論研發(fā)方案,針對使用 HDI 的讀寫接口無法作用于目標芯片的問題,選擇采用 Linux 原生函數(shù)來進行適配解決,有效提升了進度。在完成了代碼的初步功能并驗證后,我們把本地適配好的代碼上傳提交到 OpenHarmony 代碼倉,期間還經(jīng)過了 CI 門禁的代碼編譯、代碼測試、代碼規(guī)范審查,有問題的部分會被修改直到通過審核。其中這個過程也相當考量細節(jié),有可能代碼規(guī)范審查一下子就報幾百個規(guī)范問題或者警告,包括空格規(guī)范問題、換行規(guī)范問題、注釋規(guī)范問題、宏定義規(guī)范問題等問題,需要仔細地核對修改。最后經(jīng)過對代碼的不斷修正和驗證并將代碼整理到符合社區(qū)規(guī)范的狀態(tài)后,這些代碼成功合入到了主干。總的來說,這是各方一起通力合作的結果,完成了從進度跟蹤到任務分配再到技術問題攻堅的一系列問題的閉環(huán)。

Q5

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

整個開發(fā)過程中主要有以下幾個困難點。第一,Dayu200 開發(fā)板的音頻芯片比較特殊,它包含 Codec、RTC、PMIC 等多種功能,不能簡單的采用 ADM 接口去操作它。為了避免影響到其他功能的正常運作,我們使用了原生 Linux 設備驅動接口來操作 I2C、I2S、DMA 的通信以及數(shù)據(jù)傳遞,避免了異常操作的風險。第二,播放一段時間后,停止播放,持續(xù)有尖銳的很小的聲音。針對此問題,我們注冊了 Trigger 函數(shù),根據(jù)接收到狀態(tài)信息,如果為停止狀態(tài),則對 Codec 相關器件進行下電。第三,RK 的音量調節(jié)功能必須要給左右聲道寄存器寫入相同數(shù)值才可生效,但當時框架還不支持對左右寄存器的賦值。后來,我們與框架開發(fā)人員協(xié)商,使得框架新增了該項功能,最終適配上了音量調節(jié)能力。

經(jīng)驗的話,就是一定要多去和不同的技術開發(fā)人員溝通交流,有時候可能會陷入思維定勢,常常不能發(fā)現(xiàn)自己代碼上的問題,而別人一眼就看到關鍵所在,直接指出來,那么問題就迎刃而解了。

Q6

加入OpenHarmony生態(tài)以來,您最大的驚喜是什么?或者有哪些具體的收獲?

加入 OpenHarmony 生態(tài)以來,我最大的驚喜是了解了開源社區(qū)的玩法,在 OpenHarmony 社區(qū),可以從別人的代碼中學到更多知識,同時自己的代碼可以被更多人看到,好的地方不好的地方,都會有人提出來,在這種快速的反饋中,更能夠了解自己存在的不足。

我認為,這段時間充滿了收獲,首先是認識了很多志同道合的小伙伴,大家都積極參與開源項目,貢獻自己的代碼,開源之路本就荊棘叢生,有這么多開源社區(qū)的伙伴一起前行,路也好走了許多。其次是獲得了磨練與成長,在優(yōu)秀的人面前,你能看到差距,從而去學習別人的優(yōu)點;在優(yōu)秀的代碼面前,你能看到框架構思的差距,從而去學習別人的編碼思路,這確實讓人受益匪淺。

Q7

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

客觀的說,OpenHarmony 還存在有一些不足的地方,比如社區(qū)反映的入門資料較少、框架解析資料不夠清晰、issue 請求響應不太及時等問題。主要原因在這么幾個方面,一是 OpenHarmony 發(fā)展初期,它是國內(nèi)最前沿的大規(guī)模的開源系統(tǒng),它的發(fā)展是摸著石頭過河的過程,必然會存在這樣或者那樣的沒有遇到過的問題,這是相當正常的;二是開發(fā)者技術水平和技術關注點存在差異,有的開發(fā)者可能需要更詳盡的入門資料來進入門檻,有的開發(fā)者可能關注底層驅動lib庫的編譯生成方式,有的開發(fā)者可能關注 OpenHarmony SDK 如何生成 hap 應用,不知道如何找到自己想要的開發(fā)資料;三是 OpenHarmony 每個代碼倉的管理相對獨立,由每個倉庫自己的 committer 進行管理,一方面很多開發(fā)者可能找不到正確的代碼倉來提 issue,另外一方面某些 committer 可能由于事務繁忙,沒有及時地回復 issue。我期待未來 OpenHarmony 能夠切實的引導開發(fā)者,根據(jù)他們的需求,提供對應的開發(fā)資料開發(fā)資源,并且能夠進一步加強與開發(fā)者的聯(lián)系,更多傾聽開發(fā)者的聲音,給予良性的有效的反饋。

Q8

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

我認為 OpenHarmony 是一個非常自由開放的項目,各家共建單位或生態(tài)伙伴可以根據(jù)自己的需求想法來進行選擇。如果想進行應用hap開發(fā),可以參考 OpenHarmony 的 docs 倉下面的 JS 開發(fā)資料。如果是想進行開發(fā)板移植,可以參考 OpenHarmony 的 docs 倉下面的芯片移植資料,在此基礎上,如果想貢獻代碼,則可以聯(lián)系 OpenHarmony SIG 相關組織走代碼上倉的流程。至于開發(fā)上的問題,建議在 OpenHarmony 社區(qū)的 Zulip 上提問(https://zulip.openharmony.cn,未注冊用戶需要郵箱注冊),或者在研發(fā)討論群里面提問,或者是在相關代碼倉提 issue,總之,渠道是十分廣泛的。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 音頻
    +關注

    關注

    29

    文章

    2868

    瀏覽量

    81495
  • ADM
    ADM
    +關注

    關注

    0

    文章

    30

    瀏覽量

    15999
  • OpenHarmony
    +關注

    關注

    25

    文章

    3713

    瀏覽量

    16255

原文標題:黃吉——如何適配OpenHarmony自有音頻框架ADM?

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    觸覺智能Purple Pi OH鴻蒙開發(fā)板成功適配OpenHarmony5.0 Release,開啟新征程

    觸覺智能Purple Pi OH鴻蒙開發(fā)板,成功適配OpenHarmony5.0 Release版本!為大家?guī)?b class='flag-5'>OpenHarmony5.0特性講解!關注觸覺智能,為大家?guī)砀?b class='flag-5'>OpenHar
    的頭像 發(fā)表于 10-25 10:51 ?382次閱讀
    觸覺智能Purple Pi OH鴻蒙開發(fā)板成功<b class='flag-5'>適配</b><b class='flag-5'>OpenHarmony</b>5.0 Release,開啟新征程

    FET527N-C核心板已適配OpenHarmony4.1

    近期,飛凌嵌入式為FET527N-C核心板適配OpenHarmony4.1系統(tǒng)——進一步提升了核心板的兼容性、穩(wěn)定性和安全性。
    的頭像 發(fā)表于 10-15 08:01 ?420次閱讀
    FET527N-C核心板已<b class='flag-5'>適配</b><b class='flag-5'>OpenHarmony</b>4.1

    [2K300適配OpenharmonyV4.1]根文件系統(tǒng)制作請教

    官方你好,我這邊需要適配OpenharmonyV4.1,但是目前網(wǎng)上找不到2K300的開源資料,我嘗試使用2K500開源資料搭建開發(fā)環(huán)境,目前已成功編譯出對應鏡像,但是我想將OpenHarmony
    發(fā)表于 09-11 11:18

    首發(fā)!飛凌嵌入式FETMX6ULL-S核心板已適配OpenHarmony 4.1

    近日,飛凌嵌入式在FETMX6ULL-S核心板上率先適配OpenHarmony 4.1,這也是業(yè)內(nèi)的首個應用案例,嵌入式核心板與OpenHarmony操作系統(tǒng)的結合與應用,將進一步推動千行百業(yè)的數(shù)智化進程。
    的頭像 發(fā)表于 05-20 09:04 ?841次閱讀
    首發(fā)!飛凌嵌入式FETMX6ULL-S核心板已<b class='flag-5'>適配</b><b class='flag-5'>OpenHarmony</b> 4.1

    鴻蒙開發(fā):【OpenHarmony 4.0 Release指導】

    OpenHarmony 4.0版本如期而至,開發(fā)套件同步升級到API 10。相比3.2 Release版本,新增4000多個API,應用開發(fā)能力更加豐富;HDF新增200多個HDI接口,硬件適配更加便捷;我們持續(xù)優(yōu)化圖形框架和方
    的頭像 發(fā)表于 05-14 09:59 ?1457次閱讀
    鴻蒙開發(fā):【<b class='flag-5'>OpenHarmony</b> 4.0 Release指導】

    適配開源鴻蒙OpenHarmony 4.1,Purple Pi OH開發(fā)板與時俱進

    2024年4月3日,備受矚目的OpenHarmony4.1release版本正式發(fā)布。值得一提的是,觸覺智能的PurplePiOH已經(jīng)成功適配了這一新版本,展現(xiàn)出強大的兼容性和前沿的技術實力。此次
    的頭像 發(fā)表于 04-18 08:33 ?796次閱讀
    已<b class='flag-5'>適配</b>開源鴻蒙<b class='flag-5'>OpenHarmony</b> 4.1,Purple Pi OH開發(fā)板與時俱進

    OpenHarmony南向能力征集令

    1、適配過程中缺少哪些接口能力或者南向能力,需要OpenHarmony去補齊的?例如內(nèi)核、編譯、器件適配、單板適配等; 2、對標linux,需要Op
    發(fā)表于 04-09 15:32

    介紹一種OpenAtom OpenHarmony輕量系統(tǒng)適配方案

    本文在不改變原有系統(tǒng)基礎框架的基礎上, 介紹了一種OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)輕量系統(tǒng)適配方案。
    的頭像 發(fā)表于 03-05 09:24 ?1140次閱讀
    介紹一種OpenAtom <b class='flag-5'>OpenHarmony</b>輕量系統(tǒng)<b class='flag-5'>適配</b>方案

    OpenHarmony4.0源碼解析之媒體框架

    及 audio-source 插件調用音頻框架的播放及采集功能來實現(xiàn)音頻的播放與錄制;通過 surface-sink 調用圖形框架,video-decoder 調用解碼驅動模
    的頭像 發(fā)表于 02-26 22:05 ?906次閱讀
    <b class='flag-5'>OpenHarmony</b>4.0源碼解析之媒體<b class='flag-5'>框架</b>

    【鴻蒙】OpenHarmony 4.0藍牙代碼結構簡析

    /master/api當前所有應用層接口統(tǒng)一歸并到interface倉;api 10中藍牙接口按照profile拆分了多個d.ts文件 框架層https://gitee.com/openharmony/communication_bluetooth該倉之前包含
    的頭像 發(fā)表于 02-26 16:08 ?1538次閱讀
    【鴻蒙】<b class='flag-5'>OpenHarmony</b> 4.0藍牙代碼結構簡析

    Qt For OpenHarmony圖形化的進展突破

    Qt 適配 OpenHarmony 意義 Qt 是一個 C++ 跨平臺開發(fā)框架,主要用于開發(fā)圖形用戶界面(Graphical User Interface,GUI)程序,具有跨平臺類庫(支持目前
    的頭像 發(fā)表于 02-02 14:29 ?1486次閱讀
    Qt For <b class='flag-5'>OpenHarmony</b>圖形化的進展突破

    OpenHarmony 之 NAPI 框架介紹

    環(huán)境中的 JS 變量與方法。 OpenHarmony 中的 NAPI OpenAtom OpenHarmony(以下簡稱 “OpenHarmony”)應用層基于 javascript 語言開發(fā),而系統(tǒng)
    的頭像 發(fā)表于 02-01 17:34 ?692次閱讀
    <b class='flag-5'>OpenHarmony</b> 之 NAPI <b class='flag-5'>框架</b>介紹

    OpenHarmony圖形HDI基礎適配及點屏

    drm驅動測試 在用戶態(tài),drm提供了libdrm庫,并提供了modetest測試程序,來測試drm驅動是否完成了基礎適配。 在OpenHarmony的第三方庫libdrm自帶了modetest,但
    發(fā)表于 01-18 14:49

    【2023電子工程師大會】OpenHarmony龍芯架構適配分享

    【2023電子工程師大會】OpenHarmony龍芯架構適配分享與設備開發(fā)ppt
    發(fā)表于 01-03 16:31 ?10次下載

    OpenHarmony開源GPU庫Mesa3D適配說明

    本文檔主要講解在OpenHarmony中,Mesa3D的適配方法及原理說明。 環(huán)境說明: OHOS版本: 適用3.2-Beta3及以上 內(nèi)核版本: linux-5.10 硬件環(huán)境
    發(fā)表于 12-25 11:38
    主站蜘蛛池模板: 精品久久香蕉国产线看观看麻豆| 最新国产在线视频在线| 午夜伦伦电影理论片大片| 神马电影我不卡国语版| 欧美色图14p| 麒麟色欧美影院在线播放| 欧美同志高清vivoeso| 欧美AAAAAA级午夜福利视频| 男女生爽爽爽视频免费观看| 猫咪av永久最新域名| 蜜柚视频高清在线| 猫咪最新破解版下载| 女人一级毛片免费视频观看| 欧美怡红院视频一区二区三区 | 99久久久久精品国产免费麻豆| 最近中文字幕完整版高清| 2020美女视频黄频大全视频| 97蜜桃123| 成电影人免费网站| 国产精品99久久久久久AV下载| 国产精品久久久久久久久久免费| 国产色婷婷精品人妻蜜桃成熟时| 国产人妻麻豆蜜桃色在线| 黑人操日本女人| 狠日狠干日曰射| 久久伊人中文字幕有码| 欧美黑人经典片免费观看| 欧美日韩第一区| 午夜爱情动作片P| 亚洲综合AV色婷婷五月蜜臀| 中文字幕一区二区三区在线观看 | 伊人影院综合| 99国产强伦姧在线看RAPE| 成人中文在线| 国精产品一区二区三区有限公司| 久久综合九色综合国产| 熟女理发厅| 67194成在线观看免费| 国产欧美一区二区精品仙草咪| 毛片大全网站| 亚洲AV美女成人网站P站|