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

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

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

3天內不再提示

【開源項目】基于OpenHarmony的RK系列開發板音頻驅動適配方案

電子發燒友論壇 ? 來源:未知 ? 2022-10-25 08:25 ? 次閱讀

作者:陳甲印

職位:鴻湖萬聯產品推薦官軟通動力高級技術專家

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

RK系列開發板音頻驅動適配(一)

背景:

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

方案:

基于OpenHarmony適配RK系列開發板音頻驅動總體方案是:基于HDF框架和ADM模型,在內核層中創建DAI、DMA和Codec三個模塊,并實現例化ADM定義的DAI、DMA和Codec回調業務接口,ADM通過這些接口實現音頻數據處理與功能控制;然后再通過HCS配置設備節點和服務,通過HDF的服務管理機制,對內核層和用戶層提供服務。

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

RK系列開發板 DAI模塊適配:

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

在適配器模塊中實例化ADM定義的DAI兩個結構體:DaiData(SoC端DAI數據集)和AudioDaiOps(SoC端DAI操作集);在操作集模塊中實現6個ADM定義的DAI的業務接口函數;配置DAI設備節點公有參數,若有需要,則可配置SoC端的I2S寄存器信息等私有參數。

RK系列開發板 DAI模塊關系

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

RK系列開發板daiadapter

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

Startup = RK系列開發板DaiStartup;

HwParams = RK系列開發板DaiHwParams;

Trigger = RK系列開發板DaiTrigger。

實例化SoC端DAI數據集:g_daiData,核心成員字段值定義如下:

DaiInit = RK系列開發板DaiDeviceInit;

Read = RK系列開發板DaiDeviceReadReg;

Write = RK系列開發板DaiDeviceWriteReg;

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

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

moduleVersion = 1,模塊版本號;

moduleName = "DAI_RK系列開發板",模塊名;

Bind = DaiDriverBind;

Init = DaiDriverInit;

Release = DaiDriverRelease。

DAI驅動注冊到鴻蒙系統:HDFINIT(gdaiDriverEntry)

實現以下函數:

DaiDriverInit,DAI驅動初始化函數;

DaiDriverBind,DAI驅動綁定函數;

DaiDriverRelease,DAI驅動釋放函數。

RK系列開發板 daiops

實現以下函數:

RK系列開發板DaiDeviceInit,初始化SoC端DAI設備函數;

RK系列開發板DaiDeviceReadReg,讀SoC端DAI設備寄存器函數;

RK系列開發板DaiDeviceWriteReg,寫SoC端DAI設備寄存器函數;

RK系列開發板DaiStartup,啟動SoC端DAI設備函數;

RK系列開發板DaiHwParams,下發SoC端DAI硬件參數函數;

RK系列開發板DaiTrigger,監聽并處理事件函數。

總結:

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

RK系列開發板音頻驅動適配(二)

背景:

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

RK系列開發板 DMA模塊適配:

DMA是一種無需要CPU的參與就可以讓外設與系統內存之間進行雙向數據傳輸的硬件機制,其主要作用是實現音頻數據在SoC設備與內存之間的傳輸,并對循環緩存中的數據進行管理。ADM定義的DMA接口包括:DMA設備初始化、內存的分配與釋放、DMA通道的申請與配置、DMA預處理、暫停與恢復、音頻數據的提交與懸掛和循環緩存管理共11個接口。

在適配器模塊中實例化ADM定義的DAI兩個結構體:PlatformData(DMA數據集)和AudioDmaOps(DMA操作集);在操作集模塊中實現DMA的業務接口函數;配置DMA設備節點公有參數,若有需要,則可配置DMA相關寄存器信息等私有參數。

RK系列開發板 DMA模塊關系

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

RK系列開發板dmaadapter

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

DmaBufAlloc = RK系列開發板DmaBufAlloc;

DmaBufFree = RK系列開發板DmaBufFree;

DmaRequestChannel = RK系列開發板DmaRequestChannel;

DmaConfigChannel = RK系列開發板DmaConfigChannel;

DmaPrep = RK系列開發板DmaPrep;

DmaSubmit = RK系列開發板DmaSubmit;

DmaPending = RK系列開發板DmaPending;

DmaPause = RK系列開發板DmaPause;

DmaResume = RK系列開發板DmaResume;

DmaPointer = RK系列開發板PcmPointer。

實例化DMA數據集:g_platformData,核心成員字段值定義如下:

PlatformInit= RK系列開發板DmaDeviceInit;

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

實例化HdfDriverEntry類型的DAI驅動實體:

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

moduleVersion = 1,模塊版本號;

moduleName = "DMA_RK系列開發板",模塊名;

Bind = DmaDriverBind;

Init = DmaDriverInit;

Release = DmaDriverRelease。

DMA驅動注冊到鴻蒙系統:HDFINIT(gplatformDriverEntry)

實現以下函數:

DmaDriverInit,DMA驅動初始化函數;

DmaDriverBind,DMA驅動綁定函數;

DmaDriverRelease,DMA驅動釋放函數。

RK系列開發板dmaops

實現以下函數:

RK系列開發板DmaDeviceInit,初始化DMA設備函數;

RK系列開發板DmaBufAlloc,分配數據內存函數;

RK系列開發板DmaBufFree,釋放數據內存函數;

RK系列開發板DmaRequestChannel,申請DMA通道函數;

RK系列開發板DmaConfigChannel,配置DMA通道函數;

RK系列開發板DmaPrep,DMA預處理函數;

RK系列開發板DmaPause,暫停函數;

RK系列開發板DmaResume,恢復函數;

RK系列開發板DmaSubmit,提交數據函數;

RK系列開發板DmaPending,懸掛數據函數;

RK系列開發板PcmPointer,管理數據緩存函數。

總結:

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

更多“RK系列開發板音頻驅動適配指南”點擊下方的文章鏈接閱讀。

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

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

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

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


原文標題:【開源項目】基于OpenHarmony的RK系列開發板音頻驅動適配方案

文章出處:【微信公眾號:電子發燒友論壇】歡迎添加關注!文章轉載請注明出處。

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

    關注

    25

    文章

    5081

    瀏覽量

    97683
  • OpenHarmony
    +關注

    關注

    25

    文章

    3727

    瀏覽量

    16391

原文標題:【開源項目】基于OpenHarmony的RK系列開發板音頻驅動適配方案

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

收藏 人收藏

    評論

    相關推薦

    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發板演示

    本文介紹瑞芯微主板/開發板編譯OpenHarmony源碼后燒錄鏡像的教程,觸覺智能Purple Pi OH鴻蒙開發板演示。搭載了瑞芯微RK3566四核處理器,樹莓派卡片電腦設計,支持
    的頭像 發表于 12-30 10:08 ?110次閱讀
    <b class='flag-5'>OpenHarmony</b>源碼編譯后燒錄鏡像教程,<b class='flag-5'>RK</b>3566鴻蒙<b class='flag-5'>開發板</b>演示

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發板演示

    開源鴻蒙OpenHarmony系統下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,搭載了瑞芯微RK3566四核處理器,Laval鴻蒙社區推薦
    的頭像 發表于 12-24 11:46 ?209次閱讀
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?觸覺智能<b class='flag-5'>RK</b>3566鴻蒙<b class='flag-5'>開發板</b>演示

    瑞芯微主板/開發板Linux系統播放音頻方法,觸覺智能RK3562開發板演示

    本文介紹瑞芯微方案主板/開發板Linux系統播放音頻的方法,觸覺智能RK3562開發板演示,通用RK
    的頭像 發表于 12-13 11:40 ?250次閱讀
    瑞芯微主板/<b class='flag-5'>開發板</b>Linux系統播放<b class='flag-5'>音頻</b>方法,觸覺智能<b class='flag-5'>RK</b>3562<b class='flag-5'>開發板</b>演示

    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發板來演示

    本文介紹開源鴻蒙OpenHarmony系統下,修改產品屬性信息的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新OpenHarmon
    的頭像 發表于 11-27 09:31 ?192次閱讀
    <b class='flag-5'>OpenHarmony</b>屬性信息怎么修改?觸覺智能<b class='flag-5'>RK</b>3566鴻蒙<b class='flag-5'>開發板</b>來演示

    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發板演示

    本文介紹開源鴻蒙OpenHarmony系統下,開啟/關閉SELinux權限的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新Open
    的頭像 發表于 11-18 19:03 ?366次閱讀
    如何在<b class='flag-5'>開源</b>鴻蒙<b class='flag-5'>OpenHarmony</b>開啟SELinux模式?<b class='flag-5'>RK</b>3566鴻蒙<b class='flag-5'>開發板</b>演示

    【迅為】瑞芯微RK3588開發板RK3568開發板區別及優勢

    RK3568開發板
    的頭像 發表于 11-18 14:19 ?455次閱讀
    【迅為】瑞芯微<b class='flag-5'>RK</b>3588<b class='flag-5'>開發板</b><b class='flag-5'>RK</b>3568<b class='flag-5'>開發板</b>區別及優勢

    迅為iTOP-RK3568/RK3588開發板獲麒麟軟件適配認證

    迅為iTOP-RK3568/RK3588開發板獲麒麟軟件適配認證
    的頭像 發表于 10-18 14:56 ?558次閱讀
    迅為iTOP-<b class='flag-5'>RK</b>3568/<b class='flag-5'>RK</b>3588<b class='flag-5'>開發板</b>獲麒麟軟件<b class='flag-5'>適配</b>認證

    瑞芯微RK3568鴻蒙開發板OpenHarmony系統修改cfg文件權限方法

    本文適用于OpenHarmony開源鴻蒙系統修改cfg文件權限方法,深圳觸覺智能研發的RK3566、RK3568、RK3588等
    的頭像 發表于 09-11 13:26 ?949次閱讀
    瑞芯微<b class='flag-5'>RK</b>3568鴻蒙<b class='flag-5'>開發板</b><b class='flag-5'>OpenHarmony</b>系統修改cfg文件權限方法

    Openharmony軟件評估指南-米爾瑞芯微RK3568開發板

    MYD-LR3568開發板正面 圖1-2. 米爾MYD-LR3568開發板反面 1.軟件資源米爾米粉派3568系列開發板Openharmony
    發表于 09-06 20:06

    鴻蒙OpenHarmony南向/北向快速開發教程-迅為RK3568開發板

    大家期待已久的迅為RK3568開發板終于迎來了鴻蒙4.1系統的強勢支持!想知道如何實現快速開發學習嗎?跟著我們一起來探索吧! 迅為RK3568開發板
    發表于 07-23 10:44

    鴻蒙OpenHarmony開發板解析:【芯片解決方案

    芯片解決方案是指基于某款開發板的完整解決方案,包含驅動、設備側接口適配、開發板sdk等。
    的頭像 發表于 05-10 15:42 ?1261次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發板</b>解析:【芯片解決<b class='flag-5'>方案</b>】

    OpenHarmony鴻蒙實戰】在RK3399開發板實現智能門禁人臉識別

    基于RK3399開發板,使用OpenHarmony3.0-LTS開發的應用。通過定時獲取攝像頭數據,實現人臉識別比對等功能。
    的頭像 發表于 03-20 17:38 ?1438次閱讀
    【<b class='flag-5'>OpenHarmony</b>鴻蒙實戰】在<b class='flag-5'>RK</b>3399<b class='flag-5'>開發板</b>實現智能門禁人臉識別

    介紹一種OpenAtom OpenHarmony輕量系統適配方案

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

    迅為RK3568開發板驅動開發指南-輸入子系統

    迅為RK3568開發板驅動開發指南-輸入子系統
    的頭像 發表于 02-23 15:11 ?915次閱讀
    迅為<b class='flag-5'>RK</b>3568<b class='flag-5'>開發板</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>指南-輸入子系統

    開源大師兄開發板通過 OpenHarmony 3.2 Release版本兼容性測評

    近期,江蘇潤開鴻數字科技有限公司(以下簡稱“潤開鴻”)開源?師兄開發板順利通過OpenHarmony3.2.1Release版本兼容性測評,為基于開源大師兄
    的頭像 發表于 01-20 08:02 ?944次閱讀
    <b class='flag-5'>開源</b>大師兄<b class='flag-5'>開發板</b>通過 <b class='flag-5'>OpenHarmony</b> 3.2 Release版本兼容性測評
    主站蜘蛛池模板: 把极品白丝老师啪到腿软| 99久久久A片无码国产精| 出租屋交换人妻 全文| 色中色入口2015| 国产在线aaa片一区二区99 | 热re99久久精品国99热| 2020国产成人精品视频人| 国产色婷亚洲99精品AV在线| 亚洲人日本人jlzzy| 久久香蕉电影| a三级黄色片| 国模精品一区二区三区视频| 伊久久| 狠狠干狠狠色| 亚洲中文字幕日本在线观看| 国产久久精品热99看| 日韩成人在线视频| 国产亚洲精品久久无亚洲| 11 13加污女qq看他下面| 日韩经典欧美一区二区三区| 国产免费播放一区二区三区| 97免费视频在线| 西施打开双腿下面好紧| 国产精品第100页| 性色AV一区二区三区咪爱四虎| 久久人妻少妇嫩草AV蜜桃99| 第一福利视频网站在线| 中文字幕专区高清在线观看| 少女free大陆| 好吊妞国产欧美日韩视频| BLACKED太粗太长| 亚洲你我色| 少妇性饥渴BBBBBBBBB| 毛片网站网址| 果冻传媒妈妈要儿子| 成人人观看的免费毛片| 亚洲99精品A片久久久久久| 国产午夜精品自在自线之la| 亚洲一级毛片免费在线观看| 日日噜噜噜夜夜爽爽狠狠| 国产在线亚洲v天堂a|