chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

【開源項目】基于OpenHarmony的RK系列開發(fā)板音頻驅(qū)動適配方案

電子發(fā)燒友論壇 ? 來源:未知 ? 2022-10-25 08:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:陳甲印

職位:鴻湖萬聯(lián)產(chǎn)品推薦官軟通動力高級技術(shù)專家

fbd0c832-53fa-11ed-a3b6-dac502259ad0.jpg

RK系列開發(fā)板音頻驅(qū)動適配(一)

背景:

多媒體系統(tǒng)目前在Linux操作系統(tǒng),windows操作系統(tǒng)已經(jīng)非常成熟,并且應(yīng)用場景廣泛,但是,基于OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)操作系統(tǒng),目前如果使用到多媒體(音頻)是需要做一系列的適配動作,才能應(yīng)用到各種場景。

方案:

基于OpenHarmony適配RK系列開發(fā)板音頻驅(qū)動總體方案是:基于HDF框架和ADM模型,在內(nèi)核層中創(chuàng)建DAI、DMA和Codec三個模塊,并實(shí)現(xiàn)例化ADM定義的DAI、DMA和Codec回調(diào)業(yè)務(wù)接口,ADM通過這些接口實(shí)現(xiàn)音頻數(shù)據(jù)處理與功能控制;然后再通過HCS配置設(shè)備節(jié)點(diǎn)和服務(wù),通過HDF的服務(wù)管理機(jī)制,對內(nèi)核層和用戶層提供服務(wù)。

針對DAI、DMA和Codec,首先分別創(chuàng)建對應(yīng)的適配器模塊(RK系列開發(fā)板daiadapter、RK系列開發(fā)板dmaadapter、es8838codecadapter),在其中實(shí)現(xiàn)驅(qū)動的注冊、綁定、初始化和釋放;然后分別創(chuàng)建三者對應(yīng)的操作集模塊(RK系列開發(fā)板daiops、RK系列開發(fā)板dmaops、es8838codecops),在其中實(shí)現(xiàn)所有ADM定義的對應(yīng)業(yè)務(wù)接口;最后在deviceinfo.hcs中配置三者公有的參數(shù),若需要配置私有參數(shù),則還需要分別創(chuàng)建三者對應(yīng)的HCS配置文件(daiconfig.hcs、dmaconfig.hcs、codecconfig.hcs)。

RK系列開發(fā)板 DAI模塊適配:

DAI主要作用是通過I2S將Soc與Codec連接,實(shí)現(xiàn)在Soc和Codec之間音頻數(shù)據(jù)的傳輸,其中I2S驅(qū)動由HDF框架提供。ADM定義的DAI接口包括:DAI設(shè)備初始化、讀寫(Soc的)寄存器、音頻設(shè)備啟動、下發(fā)硬件參數(shù)和事件監(jiān)聽共6個接口。

在適配器模塊中實(shí)例化ADM定義的DAI兩個結(jié)構(gòu)體:DaiData(SoC端DAI數(shù)據(jù)集)和AudioDaiOps(SoC端DAI操作集);在操作集模塊中實(shí)現(xiàn)6個ADM定義的DAI的業(yè)務(wù)接口函數(shù);配置DAI設(shè)備節(jié)點(diǎn)公有參數(shù),若有需要,則可配置SoC端的I2S寄存器信息等私有參數(shù)。

RK系列開發(fā)板 DAI模塊關(guān)系

fbec3540-53fa-11ed-a3b6-dac502259ad0.jpg

RK系列開發(fā)板daiadapter

實(shí)例化SoC端DAI操作集:g_daiDeviceOps,核心成員字段值定義如下:

Startup = RK系列開發(fā)板DaiStartup;

HwParams = RK系列開發(fā)板DaiHwParams;

Trigger = RK系列開發(fā)板DaiTrigger。

實(shí)例化SoC端DAI數(shù)據(jù)集:g_daiData,核心成員字段值定義如下:

DaiInit = RK系列開發(fā)板DaiDeviceInit;

Read = RK系列開發(fā)板DaiDeviceReadReg;

Write = RK系列開發(fā)板DaiDeviceWriteReg;

ops = &g_daiDeviceOps,SoC端DAI操作集地址。

實(shí)例化HdfDriverEntry類型的DAI驅(qū)動實(shí)體:g_daiDriverEntry,核心成員字段值定義如下:

moduleVersion = 1,模塊版本號;

moduleName = "DAI_RK系列開發(fā)板",模塊名;

Bind = DaiDriverBind;

Init = DaiDriverInit;

Release = DaiDriverRelease。

DAI驅(qū)動注冊到鴻蒙系統(tǒng):HDFINIT(gdaiDriverEntry)

實(shí)現(xiàn)以下函數(shù):

DaiDriverInit,DAI驅(qū)動初始化函數(shù);

DaiDriverBind,DAI驅(qū)動綁定函數(shù);

DaiDriverRelease,DAI驅(qū)動釋放函數(shù)。

RK系列開發(fā)板 daiops

實(shí)現(xiàn)以下函數(shù):

RK系列開發(fā)板DaiDeviceInit,初始化SoC端DAI設(shè)備函數(shù);

RK系列開發(fā)板DaiDeviceReadReg,讀SoC端DAI設(shè)備寄存器函數(shù);

RK系列開發(fā)板DaiDeviceWriteReg,寫SoC端DAI設(shè)備寄存器函數(shù);

RK系列開發(fā)板DaiStartup,啟動SoC端DAI設(shè)備函數(shù);

RK系列開發(fā)板DaiHwParams,下發(fā)SoC端DAI硬件參數(shù)函數(shù);

RK系列開發(fā)板DaiTrigger,監(jiān)聽并處理事件函數(shù)。

總結(jié):

在OpenHarmony操作系統(tǒng)中,適配音頻驅(qū)動是非常重要的一個模塊,本文只是其中的一個步驟,DAI模塊適配,通過示意圖的分析,以及核心代碼的指導(dǎo),相信讀者會對音頻適配有一個基本的了解,之后的文章中,會逐步更新音頻驅(qū)動的DMA模塊適配、Codec模塊適配、Audio HCS配置等。

RK系列開發(fā)板音頻驅(qū)動適配(二)

背景:

上一篇文章RK系列開發(fā)板音頻驅(qū)動適配指南-DAI模塊適配中已經(jīng)闡述音頻驅(qū)動適配的DAI模塊適配步驟以及核心代碼的展示,本次主要介紹音頻驅(qū)動適配中的DMA模塊適配。

RK系列開發(fā)板 DMA模塊適配:

DMA是一種無需要CPU的參與就可以讓外設(shè)與系統(tǒng)內(nèi)存之間進(jìn)行雙向數(shù)據(jù)傳輸?shù)挠布C(jī)制,其主要作用是實(shí)現(xiàn)音頻數(shù)據(jù)在SoC設(shè)備與內(nèi)存之間的傳輸,并對循環(huán)緩存中的數(shù)據(jù)進(jìn)行管理。ADM定義的DMA接口包括:DMA設(shè)備初始化、內(nèi)存的分配與釋放、DMA通道的申請與配置、DMA預(yù)處理、暫停與恢復(fù)、音頻數(shù)據(jù)的提交與懸掛和循環(huán)緩存管理共11個接口。

在適配器模塊中實(shí)例化ADM定義的DAI兩個結(jié)構(gòu)體:PlatformData(DMA數(shù)據(jù)集)和AudioDmaOps(DMA操作集);在操作集模塊中實(shí)現(xiàn)DMA的業(yè)務(wù)接口函數(shù);配置DMA設(shè)備節(jié)點(diǎn)公有參數(shù),若有需要,則可配置DMA相關(guān)寄存器信息等私有參數(shù)。

RK系列開發(fā)板 DMA模塊關(guān)系

fc0d50cc-53fa-11ed-a3b6-dac502259ad0.jpg

RK系列開發(fā)板dmaadapter

實(shí)例化DMA操作集:g_dmaDeviceOps,核心成員字段值定義如下:

DmaBufAlloc = RK系列開發(fā)板DmaBufAlloc;

DmaBufFree = RK系列開發(fā)板DmaBufFree;

DmaRequestChannel = RK系列開發(fā)板DmaRequestChannel;

DmaConfigChannel = RK系列開發(fā)板DmaConfigChannel;

DmaPrep = RK系列開發(fā)板DmaPrep;

DmaSubmit = RK系列開發(fā)板DmaSubmit;

DmaPending = RK系列開發(fā)板DmaPending;

DmaPause = RK系列開發(fā)板DmaPause;

DmaResume = RK系列開發(fā)板DmaResume;

DmaPointer = RK系列開發(fā)板PcmPointer。

實(shí)例化DMA數(shù)據(jù)集:g_platformData,核心成員字段值定義如下:

PlatformInit= RK系列開發(fā)板DmaDeviceInit;

ops = &g_dmaDeviceOps,DMA操作集地址;

實(shí)例化HdfDriverEntry類型的DAI驅(qū)動實(shí)體:

g_platformDriverEntry,核心成員字段值定義如下:

moduleVersion = 1,模塊版本號;

moduleName = "DMA_RK系列開發(fā)板",模塊名;

Bind = DmaDriverBind;

Init = DmaDriverInit;

Release = DmaDriverRelease。

DMA驅(qū)動注冊到鴻蒙系統(tǒng):HDFINIT(gplatformDriverEntry)

實(shí)現(xiàn)以下函數(shù):

DmaDriverInit,DMA驅(qū)動初始化函數(shù);

DmaDriverBind,DMA驅(qū)動綁定函數(shù);

DmaDriverRelease,DMA驅(qū)動釋放函數(shù)。

RK系列開發(fā)板dmaops

實(shí)現(xiàn)以下函數(shù):

RK系列開發(fā)板DmaDeviceInit,初始化DMA設(shè)備函數(shù);

RK系列開發(fā)板DmaBufAlloc,分配數(shù)據(jù)內(nèi)存函數(shù);

RK系列開發(fā)板DmaBufFree,釋放數(shù)據(jù)內(nèi)存函數(shù);

RK系列開發(fā)板DmaRequestChannel,申請DMA通道函數(shù);

RK系列開發(fā)板DmaConfigChannel,配置DMA通道函數(shù);

RK系列開發(fā)板DmaPrep,DMA預(yù)處理函數(shù);

RK系列開發(fā)板DmaPause,暫停函數(shù);

RK系列開發(fā)板DmaResume,恢復(fù)函數(shù);

RK系列開發(fā)板DmaSubmit,提交數(shù)據(jù)函數(shù);

RK系列開發(fā)板DmaPending,懸掛數(shù)據(jù)函數(shù);

RK系列開發(fā)板PcmPointer,管理數(shù)據(jù)緩存函數(shù)。

總結(jié):

本文詳細(xì)介紹DMA的適配步驟以及核心代碼,相信讀者會對音頻適配會有一個更清楚深入的了解,之后的文章中,會逐步更新音頻驅(qū)動的Codec模塊適配、Audio HCS配置等。

更多“RK系列開發(fā)板音頻驅(qū)動適配指南”點(diǎn)擊下方的文章鏈接閱讀。

RK系列開發(fā)板音頻驅(qū)動適配指南(三)

RK系列開發(fā)板音頻驅(qū)動適配指南(四)

RK系列開發(fā)板音頻驅(qū)動適配指南(五)

fc2cd7ee-53fa-11ed-a3b6-dac502259ad0.png


原文標(biāo)題:【開源項目】基于OpenHarmony的RK系列開發(fā)板音頻驅(qū)動適配方案

文章出處:【微信公眾號:電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    26

    文章

    6433

    瀏覽量

    121036
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3977

    瀏覽量

    21365

原文標(biāo)題:【開源項目】基于OpenHarmony的RK系列開發(fā)板音頻驅(qū)動適配方案

文章出處:【微信號:gh_9b9470648b3c,微信公眾號:電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    你的專屬“數(shù)字員工”已到崗!迅為RK3588系列開發(fā)板適配OpenClaw

    你的專屬“數(shù)字員工”已到崗!迅為RK3588系列開發(fā)板適配OpenClaw
    的頭像 發(fā)表于 03-11 11:02 ?750次閱讀
    你的專屬“數(shù)字員工”已到崗!迅為<b class='flag-5'>RK</b>3588<b class='flag-5'>系列</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>適配</b>OpenClaw

    OpenHarmony開發(fā)開源資料!凌蒙派-RK3568開發(fā)板:從入門到實(shí)戰(zhàn)的全棧硬件平臺

    點(diǎn)的利器:凌蒙派 - RK3568 開發(fā)板,以及它的核心開源資源站——Gitee 倉庫(https://gitee.com/xie-shancai/lockzhiner-rk3568-open
    的頭像 發(fā)表于 02-05 13:56 ?653次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>開源</b>資料!凌蒙派-<b class='flag-5'>RK</b>3568<b class='flag-5'>開發(fā)板</b>:從入門到實(shí)戰(zhàn)的全棧硬件平臺

    迅為驅(qū)動開發(fā)實(shí)戰(zhàn):iTOP-RK3568開發(fā)板eDP屏幕移植全攻略

    迅為驅(qū)動開發(fā)實(shí)戰(zhàn):iTOP-RK3568開發(fā)板eDP屏幕移植全攻略
    的頭像 發(fā)表于 12-30 15:42 ?1287次閱讀
    迅為<b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>實(shí)戰(zhàn):iTOP-<b class='flag-5'>RK</b>3568<b class='flag-5'>開發(fā)板</b>eDP屏幕移植全攻略

    【迅為工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板Linux驅(qū)動開發(fā)實(shí)戰(zhàn):RK3568內(nèi)核模塊符號導(dǎo)出詳解

    【迅為工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板Linux驅(qū)動開發(fā)實(shí)戰(zhàn):RK3568內(nèi)核模塊符號導(dǎo)出詳解
    的頭像 發(fā)表于 11-21 13:25 ?1672次閱讀
    【迅為工業(yè)<b class='flag-5'>RK</b>3568穩(wěn)定可靠】itop-3568<b class='flag-5'>開發(fā)板</b>Linux<b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>實(shí)戰(zhàn):<b class='flag-5'>RK</b>3568內(nèi)核模塊符號導(dǎo)出詳解

    觸覺智能Purple Pi OH開發(fā)板率先適配OpenHarmony6.0 Release,鴻蒙明星開發(fā)板

    2025年9月19日,在官網(wǎng)上線開源鴻蒙OpenHarmony6.0Release僅13天,觸覺智能宣布旗下PurplePiOH開發(fā)板成功完成OpenHarmony6.0Release
    的頭像 發(fā)表于 10-29 08:00 ?1110次閱讀
    觸覺智能Purple Pi OH<b class='flag-5'>開發(fā)板</b>率先<b class='flag-5'>適配</b><b class='flag-5'>OpenHarmony</b>6.0 Release,鴻蒙明星<b class='flag-5'>開發(fā)板</b>

    觸覺智能RK3576開發(fā)板通過OpenHarmony5.0 XTS認(rèn)證

    觸覺智能作為開源鴻蒙南向硬件廠家,旗下RK3576開發(fā)板及其核心(模組)PurplePiOH2系列通過了
    的頭像 發(fā)表于 10-21 12:48 ?1186次閱讀
    觸覺智能<b class='flag-5'>RK</b>3576<b class='flag-5'>開發(fā)板</b>通過<b class='flag-5'>OpenHarmony</b>5.0 XTS認(rèn)證

    觸覺智能RK3576開發(fā)板OpenHarmony開源鴻蒙系統(tǒng)USB控制傳輸功能示例

    本文介紹OpenHarmony開源鴻蒙系統(tǒng)的USB控制傳輸功能實(shí)現(xiàn)及相關(guān)代碼示例,基于觸覺智能RK3576開發(fā)板PurplePiOH2演示。Open
    的頭像 發(fā)表于 09-30 16:31 ?1823次閱讀
    觸覺智能<b class='flag-5'>RK</b>3576<b class='flag-5'>開發(fā)板</b><b class='flag-5'>OpenHarmony</b><b class='flag-5'>開源</b>鴻蒙系統(tǒng)USB控制傳輸功能示例

    觸覺智能RK3506開發(fā)板通過OpenHarmony 5.1 XTS認(rèn)證,引領(lǐng)鴻蒙開發(fā)新標(biāo)桿!

    觸覺智能作為瑞芯微專業(yè)方案商與開源鴻蒙南向硬件廠家,旗下RK3506開發(fā)板及其核心(模組)通過Open
    的頭像 發(fā)表于 08-14 23:49 ?1994次閱讀
    觸覺智能<b class='flag-5'>RK</b>3506<b class='flag-5'>開發(fā)板</b>通過<b class='flag-5'>OpenHarmony</b> 5.1 XTS認(rèn)證,引領(lǐng)鴻蒙<b class='flag-5'>開發(fā)</b>新標(biāo)桿!

    【重要通知】OpenHarmony主干平臺開發(fā)板選型提報倒計時(參考工具發(fā)布)

    芯片平臺: RK3588、展銳7885、飛騰D3000M、海思(型號待定)各廠商/團(tuán)隊如有以上芯片平臺的開發(fā)板,請將相關(guān)資料(開發(fā)板產(chǎn)品信息、詳細(xì)產(chǎn)品規(guī)格書、初步報價方案等)于本周六(
    發(fā)表于 07-24 09:17

    嘗鮮開源鴻蒙6.0?試試明星開發(fā)板Purple Pi OH

    6月19日,開源鴻蒙官方發(fā)布了OpenHarmony6.0Beta1版本,觸覺智能緊隨其后,率先在PurplePiOH開發(fā)板進(jìn)行適配
    的頭像 發(fā)表于 07-11 18:42 ?1788次閱讀
    嘗鮮<b class='flag-5'>開源</b>鴻蒙6.0?試試明星<b class='flag-5'>開發(fā)板</b>Purple Pi OH

    迅為RK3562開發(fā)板2900頁+資料_多種系統(tǒng)適配開源

    迅為RK3562開發(fā)板ARM四核A53核心多種系統(tǒng)適配開源 RK3562
    發(fā)表于 06-17 10:50

    Ubuntu系統(tǒng)安裝Docker詳細(xì)攻略,觸覺智能RK3568開發(fā)板演示

    本文介紹Ubuntu系統(tǒng)安裝Docker方法,使用觸覺智能EVB3568鴻蒙開發(fā)板演示,搭載瑞芯微RK3568,四核A55處理器,主頻2.0Ghz,1T算力NPU;支持開源鴻蒙
    的頭像 發(fā)表于 06-06 18:05 ?1162次閱讀
    Ubuntu系統(tǒng)安裝Docker詳細(xì)攻略,觸覺智能<b class='flag-5'>RK</b>3568<b class='flag-5'>開發(fā)板</b>演示

    【免費(fèi)試用】開發(fā)板評測大賽開啟!OH 、RISC-V、Rockchip頂級開發(fā)板等你試用~

    OpenHarmony、RISC-V、Rockchip(下稱RK)全面覆蓋前沿技術(shù)方向,等你用代碼與創(chuàng)意點(diǎn)燃科技未來!——點(diǎn)擊開發(fā)板圖片立即申請————點(diǎn)擊開發(fā)板圖片立即申請———
    的頭像 發(fā)表于 06-05 08:05 ?1179次閱讀
    【免費(fèi)試用】<b class='flag-5'>開發(fā)板</b>評測大賽開啟!OH 、RISC-V、Rockchip頂級<b class='flag-5'>開發(fā)板</b>等你試用~

    貝啟BQ3568HM 開發(fā)板被選用為 OpenHarmony 明星開發(fā)板

    經(jīng)開放原子開源基金會OpenHarmony社區(qū)官方測評評選,貝啟科技BQ3568HM開源鴻蒙開發(fā)板被正式選用為OpenHarmony明星
    的頭像 發(fā)表于 05-25 00:22 ?1739次閱讀
    貝啟BQ3568HM <b class='flag-5'>開發(fā)板</b>被選用為 <b class='flag-5'>OpenHarmony</b> 明星<b class='flag-5'>開發(fā)板</b>

    瑞芯微RK3506開發(fā)板Ethercat主站適配開發(fā)詳細(xì)攻略,實(shí)測微秒級抖動延遲!

    瑞芯微RK3506開發(fā)板Ethercat主站適配開發(fā)詳細(xì)攻略,實(shí)測微秒級抖動延遲!
    的頭像 發(fā)表于 05-09 15:57 ?1976次閱讀
    瑞芯微<b class='flag-5'>RK</b>3506<b class='flag-5'>開發(fā)板</b>Ethercat主站<b class='flag-5'>適配</b><b class='flag-5'>開發(fā)</b>詳細(xì)攻略,實(shí)測微秒級抖動延遲!