来源
来源海思官方文档《开机声音使用指南.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]
-<addr> : address of raw audio data,align by 32Byte
-<size>: size of raw audio data,align by 32Byte
-<samplerate>: sample rate of raw audio data
-<channelnum>: channel number of raw audio data
-<volume>: audio output volume default:0dB, range:0 ~ 6dB
- <addr>:音频数据所存放在内存的地址;
注意:音频数据存放地址,建议选择 OS 和 MMZ 之外的内存。或者根据实际
的业务场景选择 MMZ 中某一段开机时未使用的地址。
- <size>:音频数据大小。
- < samplerate >:音频数据采样率。
- < channelnum >:声道个数。
- <volume>:输出音量大小。
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)