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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

如何進(jìn)行OpenHarmony音頻特性架構(gòu)設(shè)計(jì)和開發(fā)工作

OpenAtom OpenHarmony ? 來源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-05-11 10:02 ? 次閱讀

本期 OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)開發(fā)者故事,我們特別采訪了 2 月代碼最佳貢獻(xiàn)者、一位接觸 OpenHarmony 1 年左右,2022 年初便完成高難度開發(fā)項(xiàng)目的開發(fā)者——潤(rùn)和軟件資深軟件開發(fā)工程師趙海鵬。
趙海鵬是潤(rùn)和 OpenHarmony 南向業(yè)務(wù)媒體領(lǐng)域負(fù)責(zé)人,主要承擔(dān) Audio 開發(fā)工作。在 RK3568 平臺(tái) Audio Driver Model 適配開發(fā)過程中,在突遇西安疫情的情況下,硬件和溝通問題都面臨巨大的挑戰(zhàn),面對(duì)急迫性的項(xiàng)目需求,趙海鵬和他的伙伴迎難而上,通過各種渠道去協(xié)調(diào)設(shè)備,把做好的固件寄送出去,協(xié)調(diào)軟件所的伙伴們做遠(yuǎn)程測(cè)試,包括焊接等等,幾乎每天在線工作及溝通 12 個(gè)小時(shí)以上,最終克服困難圓滿完成任務(wù)。
我們與趙海鵬一起聊了他加入 OpenHarmony 生態(tài)的初心、對(duì) OpenHarmony 架構(gòu)適配的理解、工作中遇到的難題和攻克的過程、以及開源過程的心得與教訓(xùn)等話題。現(xiàn)將專訪內(nèi)容整理如下,希望對(duì)你有所啟發(fā)。

Q1

請(qǐng)簡(jiǎn)要介紹下自己,以及所在開發(fā)團(tuán)隊(duì)

大家好,我是潤(rùn)和軟件資深軟件開發(fā)工程師趙海鵬。我從 2020 年 10 月份開始正式接觸 OpenHarmony 開源項(xiàng)目,開始了解框架和結(jié)構(gòu)。目前在潤(rùn)和軟件主要負(fù)責(zé) OpenHarmony 南向業(yè)務(wù)媒體領(lǐng)域。

Q2

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

第一個(gè)層面,從大的環(huán)境來說,OpenHarmony 是創(chuàng)新的操作系統(tǒng),這是吸引我的首要因素。

第二個(gè)層面,從個(gè)人成長(zhǎng)來說,我希望在 OpenHarmony 發(fā)展的初期加入進(jìn)來,這樣會(huì)讓我對(duì)整個(gè)系統(tǒng)框架的演變更為清楚,個(gè)人的成長(zhǎng)機(jī)會(huì)點(diǎn)相對(duì)比較多。

Q3

您方便給我們介紹一下這個(gè)產(chǎn)品嗎,或者這段經(jīng)歷嗎?這么短時(shí)間達(dá)成了這樣好的效果,請(qǐng)問您的“秘訣”都有哪些呢?

"秘訣"談不上,主要學(xué)習(xí)和工作過程中,多給自己提問題,帶著問題去學(xué)習(xí)與研究;同時(shí),針對(duì)過程遇到問題不斷總結(jié)與積累,形成知識(shí)庫(kù)。

我接著說一下主要貢獻(xiàn)的特性。我們目標(biāo)是把社區(qū)上非海思芯片第三方平臺(tái) RK3568 的 Audio 驅(qū)動(dòng)適配起來。因?yàn)?Openharmony Audio 驅(qū)動(dòng)框架是 ADM,原生的驅(qū)動(dòng)是 ALSA,差異相對(duì)來說比較大。為了加快進(jìn)度協(xié)調(diào)軟件所的一個(gè)伙伴和我一起聯(lián)合開發(fā),正好趕上西安的疫情,我就一直在家里專注的搞研發(fā),需要交流就通過線上溝通。過程中會(huì)遇到很多困難,調(diào)試 Audio 驅(qū)動(dòng),需要一些硬件設(shè)備(示波器、邏輯分析儀等)的支撐,而處在疫情環(huán)境下,有的設(shè)備是缺少的,西安的快遞也很難進(jìn)來,我們通過各種渠道去協(xié)調(diào)設(shè)備,然后把做好的固件發(fā)出去,讓中科院軟件所的伙伴做遠(yuǎn)程測(cè)試,包括焊接等等。

另外,我們?nèi)蝿?wù)的時(shí)間節(jié)點(diǎn)比較緊張,只有不到一個(gè)月左右的時(shí)間,Audio 驅(qū)動(dòng)代碼裁剪過后還有三萬行,也就是我們要把三萬代碼讀懂再適配到 OpenHarmony 上,給我們的工作也增加了難度,但是我們都一一克服,堅(jiān)挺過來,最終完成了任務(wù)。

Q4

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

在前期,內(nèi)核代碼中 Audio 相關(guān)的有 10w+ 的代碼,需要做裁剪成最小集合,另外,需要梳理主線上 ADM 的代碼框架,參考:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-peripherals-audio-des.md。

中間階段,進(jìn)入真正的開發(fā)過程中,我先把框架做好,然后按照模塊分工合作開發(fā)。當(dāng)時(shí)因?yàn)槭蔷€上辦公,每天的工作時(shí)間都在 12 小時(shí)以上,雙方通過線上會(huì)議交流,出現(xiàn)問題及時(shí)溝通及時(shí)解決。

后期主要是調(diào)試階段,當(dāng)時(shí)信號(hào)有一些問題,中科院軟件所的硬件工程師幫我們焊接,然后采樣并把信號(hào)圖像回傳到我們這邊,再做分析,然后再做下一個(gè)方案的調(diào)整,遇到一些難以解決的問題,也會(huì)求助 ADM 框架負(fù)責(zé)人。為了保證較高的工作效率,這些都在線上會(huì)議進(jìn)行溝通。

另外,調(diào)試過程中發(fā)現(xiàn)框架存在一些不友好不完善的地方,在適配過程中不斷完善,形成了 Linux 相對(duì)簡(jiǎn)單適配的方案并形成文檔,在社區(qū)上發(fā)布。該方案存在的問題是不兼容 LiteOS,沒有完全實(shí)現(xiàn) ADM 的優(yōu)化能力。

b2f3fdbc-d062-11ec-bce3-dac502259ad0.png

Q5

在整個(gè)開發(fā)進(jìn)程中,您和您的團(tuán)隊(duì)遇到過哪些技術(shù)上或其他方面的難題呢?這些難題又是如何被逐一解決的?在這些難題被解決的過程中,您總結(jié)了哪些寶貴的經(jīng)驗(yàn)or教訓(xùn)呢?

技術(shù)問題:RK3568 平臺(tái)的 codec 組件使用的 RK809,此芯片不是單一的 Codec 功能還包含電源管理的模塊,使用同一路 I2C 控制通道,拆分難度大,可能還要設(shè)計(jì)電源管理模塊。

解決方案:借助 Linux 原生驅(qū)動(dòng),ADM 的驅(qū)動(dòng)接口初始化節(jié)點(diǎn)調(diào)用對(duì)應(yīng)的 probe 函數(shù),按照此思路觸類旁通,其余模塊也按照的這樣的操作,減少驅(qū)動(dòng)代碼開發(fā)對(duì)寄存器的依賴,提升開發(fā)效率。具體的方案在 RK3568 驅(qū)動(dòng)適配文檔中有說明,請(qǐng)關(guān)注。

Q6

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

收獲的第一個(gè)層面,是我以前的工作經(jīng)歷相對(duì)來說是單個(gè)模塊或者單個(gè)特性,而現(xiàn)在有機(jī)會(huì)面對(duì)整個(gè)系統(tǒng)。同時(shí),OpenHarmony 正經(jīng)歷從 0 到 1 的過程,在我們工作的過程中可以深入了解整個(gè)系統(tǒng),獲得比較全面的認(rèn)知,對(duì)能力的提升空間比較大。

第二層面針對(duì)系統(tǒng)的設(shè)計(jì),以前我只需要考慮需求內(nèi)部實(shí)現(xiàn)邏輯、流程、接口等?,F(xiàn)在做需求設(shè)計(jì)的時(shí)候,先考慮外部依賴,定義接口,然后再去設(shè)計(jì)具體的需求的框架,軟件分層等等。

Q7

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

我覺得最主要的是結(jié)合自己過往的工作背景或者環(huán)境,如果沒有太多經(jīng)驗(yàn),可以從 mini system 入手,如果有一些安卓或者 Linux 的經(jīng)驗(yàn),可以從 standard system 入手??傊?,一定要從自己熟悉的模塊入手,這樣才能觸類旁通,通過邊學(xué)邊拆的方式,熟悉度才會(huì)越來越高。

入手之后,需要集中在單點(diǎn)上深入研究,把一個(gè)點(diǎn)深度了解后,其他點(diǎn)學(xué)習(xí)的就會(huì)比較快。同時(shí)也要看看整體的架構(gòu),如果對(duì)架構(gòu)都不了解的話,是不足以支撐后續(xù)開發(fā)和項(xiàng)目工作,至少需要有概念性的認(rèn)知。

Q8

開放性問題,可以暢所欲言,請(qǐng)問您還有話想告訴大家?

從驅(qū)動(dòng)系統(tǒng)上來講,目前 OpenHarmony 的驅(qū)動(dòng)是基于 HDF 開發(fā)的,既可以在 Linux 上運(yùn)行,也可以在 LiteOS 上運(yùn)行,便于移植。但目前成熟度不夠,適配難度較高。對(duì)開發(fā)者來說不太友好,希望各共建單位和開源開發(fā)者一起去完善,讓平臺(tái)驅(qū)動(dòng)適配更容易。

審核編輯 :李倩

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

    關(guān)注

    29

    文章

    2894

    瀏覽量

    81731
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3732

    瀏覽量

    16441

原文標(biāo)題:趙海鵬:如何進(jìn)行 OpenHarmony 音頻特性架構(gòu)設(shè)計(jì)和開發(fā)工作

文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深入理解 Llama 3 的架構(gòu)設(shè)計(jì)

    在人工智能領(lǐng)域,對(duì)話系統(tǒng)的發(fā)展一直是研究的熱點(diǎn)之一。隨著技術(shù)的進(jìn)步,我們見證了從簡(jiǎn)單的基于規(guī)則的系統(tǒng)到復(fù)雜的基于機(jī)器學(xué)習(xí)的模型的轉(zhuǎn)變。Llama 3,作為一個(gè)假設(shè)的先進(jìn)對(duì)話系統(tǒng),其架構(gòu)設(shè)計(jì)融合了
    的頭像 發(fā)表于 10-27 14:41 ?595次閱讀

    邊緣計(jì)算架構(gòu)設(shè)計(jì)最佳實(shí)踐

    邊緣計(jì)算架構(gòu)設(shè)計(jì)最佳實(shí)踐涉及多個(gè)方面,以下是一些關(guān)鍵要素和最佳實(shí)踐建議: 一、核心組件與架構(gòu)設(shè)計(jì) 邊緣設(shè)備與網(wǎng)關(guān) 邊緣設(shè)備 :包括各種嵌入式設(shè)備、傳感器、智能手機(jī)、智能攝像頭等,負(fù)責(zé)采集原始數(shù)據(jù)
    的頭像 發(fā)表于 10-24 14:17 ?508次閱讀

    基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony

    1、程序簡(jiǎn)介該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫的UI應(yīng)用類:HelloOpenHarmony。本案例是基于API9接口開發(fā)。本案例已在OpenHarmony凌蒙派-RK35
    的頭像 發(fā)表于 09-15 08:09 ?448次閱讀
    基于ArkTS語言的<b class='flag-5'>OpenHarmony</b> APP應(yīng)用<b class='flag-5'>開發(fā)</b>:Hello<b class='flag-5'>Openharmony</b>

    OpenHarmony 明星開發(fā)板和應(yīng)用招募啟動(dòng),等你來!

    優(yōu)秀標(biāo)桿,活動(dòng)將圍繞OpenHarmony開發(fā)板和應(yīng)用展開,歷經(jīng)報(bào)名、初選、復(fù)選、公示四個(gè)階段,最終評(píng)選出的優(yōu)秀開發(fā)板和應(yīng)用將在社區(qū)進(jìn)行重點(diǎn)推廣。 報(bào)名時(shí)間 活動(dòng)報(bào)名時(shí)間從即日開始
    發(fā)表于 09-14 15:21

    何進(jìn)行電源供應(yīng)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《如何進(jìn)行電源供應(yīng)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 09-09 10:33 ?0次下載
    如<b class='flag-5'>何進(jìn)行</b>電源供應(yīng)設(shè)計(jì)

    PD快充產(chǎn)品是如何進(jìn)行工作的?

    、穩(wěn)定等特點(diǎn)。由于谷歌宣布Android7.0以上的手機(jī)搭載的快充協(xié)議必須支持PD協(xié)議,對(duì)于PD快充產(chǎn)品而言是巨大的市場(chǎng)機(jī)遇。本文將主要給大家講解PD快充產(chǎn)品是如何進(jìn)行工作的,內(nèi)部需要怎樣的分立器件產(chǎn)品。
    的頭像 發(fā)表于 07-26 15:21 ?721次閱讀
    PD快充產(chǎn)品是如<b class='flag-5'>何進(jìn)行</b><b class='flag-5'>工作</b>的?

    軟通動(dòng)力助陣OpenHarmony開發(fā)者大會(huì)2024成功舉辦

    近日,由開放原子開源基金會(huì)OpenHarmony項(xiàng)目群工作委員會(huì)主辦的OpenHarmony開發(fā)者大會(huì)2024在深圳成功舉辦。
    的頭像 發(fā)表于 05-28 09:35 ?726次閱讀
    軟通動(dòng)力助陣<b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發(fā)</b>者大會(huì)2024成功舉辦

    OpenHarmony開發(fā)者大會(huì)2024:誠(chéng)邁科技多項(xiàng)榮譽(yù)加冕再證實(shí)力

    5月25日,OpenHarmony開發(fā)者大會(huì)2024在深圳成功舉辦。大會(huì)以OpenHarmony 4.1 Release版本根技術(shù)特性解讀為契機(jī),聚焦技術(shù)革新和社區(qū)生態(tài)進(jìn)展
    的頭像 發(fā)表于 05-27 18:14 ?846次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發(fā)</b>者大會(huì)2024:誠(chéng)邁科技多項(xiàng)榮譽(yù)加冕再證實(shí)力

    OpenHarmony 成功亮相國(guó)際學(xué)術(shù)會(huì)議 ASPLOS 2024

    OpenHarmony的分布式特性、并發(fā)驗(yàn)證框架及可信執(zhí)行環(huán)境,并與來自全球各地的專家學(xué)者深入探討了其在移動(dòng)操作系統(tǒng)、分布式系統(tǒng)、系統(tǒng)架構(gòu)設(shè)計(jì)、移動(dòng)
    的頭像 發(fā)表于 05-16 09:28 ?464次閱讀
    <b class='flag-5'>OpenHarmony</b> 成功亮相國(guó)際學(xué)術(shù)會(huì)議 ASPLOS 2024

    交換芯片架構(gòu)設(shè)計(jì)

    交換芯片的架構(gòu)設(shè)計(jì)是網(wǎng)絡(luò)設(shè)備性能和功能的關(guān)鍵。一個(gè)高效的交換芯片架構(gòu)能夠處理大量的數(shù)據(jù)流量,支持高速數(shù)據(jù)傳輸,并提供先進(jìn)的網(wǎng)絡(luò)功能。
    的頭像 發(fā)表于 03-21 16:28 ?586次閱讀

    交換芯片架構(gòu)設(shè)計(jì)

    交換芯片架構(gòu)設(shè)計(jì)是網(wǎng)絡(luò)通信中的關(guān)鍵環(huán)節(jié),它決定了交換機(jī)的性能、功能和擴(kuò)展性。
    的頭像 發(fā)表于 03-18 14:12 ?772次閱讀

    鴻蒙開發(fā)實(shí)戰(zhàn)項(xiàng)目:錄音變聲應(yīng)用

    概述 本示例使用AudioCapturer提供的JS接口對(duì)音頻進(jìn)行采集,并進(jìn)行變聲處理。 涉及OpenHarmony技術(shù)特性 媒體 基礎(chǔ)信息
    發(fā)表于 03-01 17:24

    工作準(zhǔn)備】OpenHarmony鴻蒙操作系統(tǒng)開發(fā)——基礎(chǔ)必備軟件

    前言 在下根據(jù)多年 OpenHarmony 內(nèi)核及多個(gè)子系統(tǒng)的開發(fā)經(jīng)驗(yàn),將用到的必備工具軟件列出一張清單,供新同學(xué)參考。如何精進(jìn)?請(qǐng)自行搜索專業(yè)手冊(cè)進(jìn)行學(xué)習(xí),我是碰到什么問題、需要什么小功能然后去查
    的頭像 發(fā)表于 02-23 15:51 ?1962次閱讀
    【<b class='flag-5'>工作</b>準(zhǔn)備】<b class='flag-5'>OpenHarmony</b>鴻蒙操作系統(tǒng)<b class='flag-5'>開發(fā)</b>——基礎(chǔ)必備軟件

    華為企業(yè)架構(gòu)設(shè)計(jì)方法及實(shí)例

    企業(yè)架構(gòu)是一項(xiàng)非常復(fù)雜的系統(tǒng)性工程。公司在充分繼承原有架構(gòu)方法基礎(chǔ)上,博采眾家之長(zhǎng),融合基于職能的業(yè)務(wù)能力分析與基于價(jià)值的端到端流程分析,將”傳統(tǒng)架構(gòu)設(shè)計(jì)(TOGAF)”與“領(lǐng)域驅(qū)動(dòng)(DDD)”方法相結(jié)合。
    發(fā)表于 01-30 09:40 ?918次閱讀
    華為企業(yè)<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)方法及實(shí)例

    【RISC-V開放架構(gòu)設(shè)計(jì)之道|閱讀體驗(yàn)】理解指令設(shè)計(jì)思想的好指導(dǎo)

    感謝電子發(fā)燒友論壇和電子工業(yè)出版社提供的試讀機(jī)會(huì)。 在上一篇文章中我們簡(jiǎn)單地介紹了《RISC-V開放架構(gòu)設(shè)計(jì)之道》這本書的情況,今天來談?wù)勊谥噶钤O(shè)計(jì)方面的特色。 我以前在課堂講授過x86和ARM
    發(fā)表于 01-28 16:58