日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RK系列开发板音频驱动适配指南(二)

發布時間:2024/3/13 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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模塊關系

?RK系列開發板_dma-classes.puml

  • 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系列开发板音频驱动适配指南(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。