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]
-<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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的老周

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值