OpenHarmony开源社区
直播中

软通动力HOS

3年用户 221经验值
擅长:EMC/MEI设计 EDA/IC设计 处理器/DSP
私信 关注
[经验]

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

背景:

RK系列开发板音频驱动DAI、DMA、Codec、HCS适配完成之后,需要进行编译,验证驱动是否可用。而操作步骤,主要是指导开发者,如何正确使用音频驱动,通过命令来控制音频文件的播放等。

步骤:

编译配置

  • audio驱动编译配置文件路径:
  • vendor\RK系列开发板\hdf_config\khdf\audio
  • audio驱动私有配置文件编译配置文件:
  • vendor\rockchip\RK系列开发板\hdf_config\khdf\hdf.hcs
  • defconfig文件
  • kernel\linux\linux-5.10\arch\arm64\configs\defconfig

...

CONFIG_DRIVERS_HDF_AUDIO_RK系列开发板=y

  • Kconfig文件:
  • drivers\adapter\khdf\linux\model\audio\Kconfig

config DRIVERS_HDF_AUDIO_RK系列开发板

bool "Enable HDF Audio Codec driver"

default y

depends on DRIVERS\_HDF\_AUDIO

help

    Answer Y to choice HDF Audio Codec driver\.
  • Makefile文件:
  • drivers\adapter\khdf\linux\model\audio\Makefile

KHDF_AUDIO_BASE_ROOT_DIR = ../../../../../../../..

KHDF_AUDIO_RK系列开发板_DIR = $(KHDF_AUDIO_BASE_ROOT_DIR)/device/rockchip/RK系列开发板/audio

KHDF_AUDIO_KHDF_ROOT_DIR = drivers/hdf/khdf

KHDF_FRAMEWORK_ROOT_DIR = drivers/hdf/framework

KHDF_AUDIO_RK系列开发板_INC_DIR = $(KHDF_FRAMEWORK_ROOT_DIR)/../../device/rockchip/RK系列开发板/audio

obj-$(CONFIG_DRIVERS_HDF_AUDIO_RK系列开发板) += \

$\(KHDF\_AUDIO\_RK系列开发板\_DIR\)/soc/src/RK系列开发板\_dma\_ops\.o \

      $\(KHDF\_AUDIO\_RK系列开发板\_DIR\)/soc/src/RK系列开发板\_dma\_adapter\.o \

      $\(KHDF\_AUDIO\_RK系列开发板\_DIR\)/dai/src/RK系列开发板\_dai\_adapter\.o \

      $\(KHDF\_AUDIO\_RK系列开发板\_DIR\)/dai/src/RK系列开发板\_dai\_ops\.o \

      $\(KHDF\_AUDIO\_RK系列开发板\_DIR\)/codec/src/es8388\_codec\_adapter\.o \

      $\(KHDF\_AUDIO\_RK系列开发板\_DIR\)/codec/src/es8388\_codec\_ops\.o

ccflags-$(CONFIG_DRIVERS_HDF_AUDIO_RK系列开发板) += -lm -lc -lgcc -std=gnu99 -Werror \

\-I$\(srctree\)/$\(KHDF\_AUDIO\_KHDF\_ROOT\_DIR\)/osal/include \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/include/core \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/include/utils \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/include/osal \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/include/platform \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/include/audio \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/ability/sbuf/include \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/core/common/include/host \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/model/audio/core/include \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/model/audio/sapm/include \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/model/audio/dispatch/include \

         \-I$\(srctree\)/$\(KHDF\_FRAMEWORK\_ROOT\_DIR\)/model/audio/common/include \

         \-I$\(srctree\)/bounds\_checking\_function/include \

         \-I$\(srctree\)/$\(KHDF\_AUDIO\_RK系列开发板\_INC\_DIR\)/soc/include \

         \-I$\(srctree\)/$\(KHDF\_AUDIO\_RK系列开发板\_INC\_DIR\)/dai/include \

         \-I$\(srctree\)/$\(KHDF\_AUDIO\_RK系列开发板\_INC\_DIR\)/codec/include

编译内核

  • 执行make_kernel.sh
  • 生成镜像文件:
  • out\KERNELOBJ\kernel\srctmp\linux-4.19\boot.img

操作步骤,主要是指导开发者,如何正确使用音频驱动,通过命令来控制音频文件的播放等。

步骤:

播放Demo操作步骤

  • Step1:执行hdc shell
  • Step2:运行audiosamplerender
  • Step3:输入2 (选择2.Render SmartPA)
  • Step4:输入1 (选择1.Render Direct Loading)
  • Step5:输入1 (选择1.Render Start)
  • Step6:在播放过程可以输入2-12,操作其他功能,其中音量范围0-1,可输入2位小数。 [可选步骤]

1666057756998w8lgsh9yud

录音Demo操作步骤

录音Demo当前默认使用的是外置Codec。

  • Step1:执行hdc shell
  • Step2:运行audiosamplecapture
  • Step3:输入1 (选择1.Capture Direct Loading)
  • Step4:输入1 (选择1.Capture Start)
  • Step5:在播放过程可以输入2-12,操作其他功能,其中音量范围0-1,可输入2位小数。 [可选步骤]

16660577578683ctuelnj2r

总结:

通过编译配置、并执行make_kernel.sh命令,最后生成镜像文件 boot.img,通过烧录工具烧录,即可验证驱动。RK系列开发板音频驱动适配指南,从DAI驱动适配、DMA的驱动适配到到编译内核以及本文的操作步骤指导,掌握了核心代码和步骤,更深入了解了驱动适配的整个过程。一整套流程下来,就可以适配RK系列开发板音频驱动了。也希望在今后,能有更多的精彩内容分享给大家,谢谢!

更多回帖

发帖
×
20
完善资料,
赚取积分