Hi3518的uboot中播放音频

来源

来源海思官方文档《开机声音使用指南.pdf》。

概述

开机声音功能默认不开启。

机声音只支持从芯片内置 acodec 的 DAC 输出,如果开启了开机声音功能,则代码中配置将 I2S 连接到芯片内置的 acodec。如果有外部静音电路,需要将静音电路禁掉。

开机声音仅支持 16bit 精度的音频 Raw 数据,支持单声道和双声道数据,如果是双声道数据必须是左右声道交织的数据。

仅支持对音频 Raw 数据进行单次播放,不支持循环播放。

采样率支持 8kHz、11.025kHz、12kHz、16kHz、22.05kHz、24kHz、32kHz、44.1kHz、48kHz。

建议烧写音频数据到 OS 以外,MMZ 靠后的 DDR 地址。

音量范围[0, 6]dB 可调,超过 6dB 按 6dB 设置,小于 0dB 按 0dB 设置。

startao 传入的数据地址及长度须是 32Byte 对齐。

开机声音实现 boot 启动之后加载 kernel 之前将音频 Raw 数据推送到音频输出设备的功能。开机声音功能提供 boot 命令行和 boot 函数调用两种使用方式。

boot命令行

开启AO

startao:启动 AO 设备
参数:数据地址、数据大小、采样率、声道个数、音量。
hisilicon # help startao
startao - startao - open interface of ao device.
- startao [addr size samplerate channelnum volume]
Usage:
startao
args: [addr size samplerate channelnum volume]
- : address of raw audio data,align by 32Byte
-: size of raw audio data,align by 32Byte
-: sample rate of raw audio data
-: channel number of raw audio data
-: audio output volume default:0dB, range:0 ~ 6dB
- :音频数据所存放在内存的地址;
注意:音频数据存放地址,建议选择 OS 和 MMZ 之外的内存。或者根据实际
的业务场景选择 MMZ 中某一段开机时未使用的地址。
- :音频数据大小。
- < samplerate >:音频数据采样率。
- < channelnum >:声道个数。
- :输出音量大小。

startao 0x82000000 0x18000 48000 2 0

关闭AO

stopao:关闭 AO 设备
参数:无
hisilicon # help stopao
stopao - stopao - close interface of ao device.

stopao

boot函数

开启AO

int start_ao(unsigned int u32Addr, unsigned int u32Size
AUDIO_SAMPLE_RATE_E enSample, unsigned int u32Chncnt, unsigned int
u32Vol)

关闭AO

int stop_ao(void)

你可能感兴趣的:(Hi3519A)