- 陳甲印 -
鴻湖萬(wàn)聯(lián)高級(jí)技術(shù)專(zhuān)家
背景
RK系列開(kāi)發(fā)板音頻驅(qū)動(dòng)DAI、DMA、Codec、HCS適配完成之后,需要進(jìn)行編譯,驗(yàn)證驅(qū)動(dòng)是否可用。而操作步驟主要是指導(dǎo)開(kāi)發(fā)者,如何正確使用音頻驅(qū)動(dòng),通過(guò)命令來(lái)控制音頻文件的播放等。
步驟
1.1 編譯配置
audio驅(qū)動(dòng)編譯配置文件路徑:
vendorRK系列開(kāi)發(fā)板hdf_configkhdfaudio
audio驅(qū)動(dòng)私有配置文件編譯配置文件:
vendor ockchipRK系列開(kāi)發(fā)板hdf_configkhdfhdf.hcs
defconfig文件
kernellinuxlinux-5.10archarm64configsdefconfig ...CONFIG_DRIVERS_HDF_AUDIO_RK系列開(kāi)發(fā)板=y
Kconfig文件:
driversadapterkhdflinuxmodelaudioKconfig config DRIVERS_HDF_AUDIO_RK系列開(kāi)發(fā)板bool "Enable HDF Audio Codec driver"default ydepends on DRIVERS_HDF_AUDIOhelpAnswer Y to choice HDF Audio Codec driver.
Makefile文件:
driversadapterkhdflinuxmodelaudioMakefile KHDF_AUDIO_BASE_ROOT_DIR = ../../../../../../../..KHDF_AUDIO_RK系列開(kāi)發(fā)板_DIR = $(KHDF_AUDIO_BASE_ROOT_DIR)/device/rockchip/RK系列開(kāi)發(fā)板/audio KHDF_AUDIO_KHDF_ROOT_DIR = drivers/hdf/khdfKHDF_FRAMEWORK_ROOT_DIR = drivers/hdf/frameworkKHDF_AUDIO_RK系列開(kāi)發(fā)板_INC_DIR = $(KHDF_FRAMEWORK_ROOT_DIR)/../../device/rockchip/RK系列開(kāi)發(fā)板/audio obj-$(CONFIG_DRIVERS_HDF_AUDIO_RK系列開(kāi)發(fā)板) += $(KHDF_AUDIO_RK系列開(kāi)發(fā)板_DIR)/soc/src/RK系列開(kāi)發(fā)板_dma_ops.o $(KHDF_AUDIO_RK系列開(kāi)發(fā)板_DIR)/soc/src/RK系列開(kāi)發(fā)板_dma_adapter.o $(KHDF_AUDIO_RK系列開(kāi)發(fā)板_DIR)/dai/src/RK系列開(kāi)發(fā)板_dai_adapter.o $(KHDF_AUDIO_RK系列開(kāi)發(fā)板_DIR)/dai/src/RK系列開(kāi)發(fā)板_dai_ops.o $(KHDF_AUDIO_RK系列開(kāi)發(fā)板_DIR)/codec/src/es8388_codec_adapter.o $(KHDF_AUDIO_RK系列開(kāi)發(fā)板_DIR)/codec/src/es8388_codec_ops.o ccflags-$(CONFIG_DRIVERS_HDF_AUDIO_RK系列開(kāi)發(fā)板) += -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系列開(kāi)發(fā)板_INC_DIR)/soc/include -I$(srctree)/$(KHDF_AUDIO_RK系列開(kāi)發(fā)板_INC_DIR)/dai/include -I$(srctree)/$(KHDF_AUDIO_RK系列開(kāi)發(fā)板_INC_DIR)/codec/include
1.2 編譯內(nèi)核
執(zhí)行make_kernel.sh
生成鏡像文件:
outKERNELOBJkernelsrctmplinux-4.19oot.img
操作步驟,主要是指導(dǎo)開(kāi)發(fā)者,如何正確使用音頻驅(qū)動(dòng),通過(guò)命令來(lái)控制音頻文件的播放等。 1.3 播放Demo操作步驟
Step1:執(zhí)行hdc shell
Step2:運(yùn)行audiosamplerender
Step3:輸入2 (選擇2.Render SmartPA)
Step4:輸入1 (選擇1.Render Direct Loading)
Step5:輸入1 (選擇1.Render Start)
Step6:在播放過(guò)程可以輸入2-12,操作其他功能,其中音量范圍0-1,可輸入2位小數(shù)。[可選步驟]
1.4 錄音Demo操作步驟 錄音Demo當(dāng)前默認(rèn)使用的是外置Codec。
Step1:執(zhí)行hdc shell
Step2:運(yùn)行audiosamplecapture
Step3:輸入1 (選擇1.Capture Direct Loading)
Step4:輸入1 (選擇1.Capture Start)
Step5:在播放過(guò)程可以輸入2-12,操作其他功能,其中音量范圍0-1,可輸入2位小數(shù)。[可選步驟]
? ?
總結(jié)
通過(guò)編譯配置、并執(zhí)行make_kernel.sh命令,最后生成鏡像文件 boot.img,通過(guò)燒錄工具燒錄,即可驗(yàn)證驅(qū)動(dòng)。RK系列開(kāi)發(fā)板音頻驅(qū)動(dòng)適配指南,從DAI驅(qū)動(dòng)適配、DMA的驅(qū)動(dòng)適配到到編譯內(nèi)核以及本文的操作步驟指導(dǎo),掌握了核心代碼和步驟,更深入了解了驅(qū)動(dòng)適配的整個(gè)過(guò)程。一整套流程下來(lái),就可以適配RK系列開(kāi)發(fā)板音頻驅(qū)動(dòng)。 未來(lái),將會(huì)為大家持續(xù)分享精彩內(nèi)容。
-
音頻
+關(guān)注
關(guān)注
29文章
2868瀏覽量
81492 -
dma
+關(guān)注
關(guān)注
3文章
560瀏覽量
100544 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371 -
音頻驅(qū)動(dòng)
+關(guān)注
關(guān)注
0文章
10瀏覽量
8144 -
RK3588
+關(guān)注
關(guān)注
6文章
325瀏覽量
4311
原文標(biāo)題:RK系列開(kāi)發(fā)板音頻驅(qū)動(dòng)適配指南(五)
文章出處:【微信號(hào):HarmonyOS_Community,微信公眾號(hào):電子發(fā)燒友開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論