开机声音使用指南
前言
本文为实现开机声音,提供了基本的功能函数和boot命令行,用户可以根据具体应用进行配置。
与本文档相对应的产品版本如下。
本文档(本指南)主要适用于以下工程师:
- 技术支持工程师
- 软件开发工程师
在本文中可能出现下列标志,它们所代表的含义如下。
修订记录累积了每次文档更新的说明。最新版本的文档包含以前所有文档版本的更新内容。
开机声音使用指南
概述
开机声音实现boot启动之后加载kernel之前将音频Raw数据推送到音频输出设备的功能。开机声音功能提供boot命令行和boot函数调用两种使用方式。
boot命令行
-
startao:启动AO设备
参数:数据地址、数据大小、采样率、声道个数、音量。
# help startao startao - startao - open interface of ao device. - startao [addr size sample_rate channel_num volume] Usage: startao args: [addr size sample_rate channel_num volume] -<addr> : address of raw audio data, align by 32Byte -<size>: size of raw audio data, align by 32Byte -<sample_rate>: sample rate of raw audio data -<channel_num>: channel number of raw audio data -<volume>: audio output volume, default:0dB, range:0 ~ 6dB-
<addr>:音频数据所存放在内存的地址;
注意:音频数据存放地址,建议选择OS和MMZ之外的内存。或者根据实际的业务场景选择MMZ中某一段开机时未使用的地址。
-
<size>:音频数据大小。
- <sample_rate>:音频数据采样率。
- <channel_num>:声道个数。
- <volume>:输出音量大小。
-
-
stopao:关闭AO设备
参数:无
boot函数
以下函数可供用户在boot下编码调用:
-
startao
-
stopao
相关代码
该开机声音只提供了基本的功能函数,用户可以根据具体应用进行配置(以Hi3519DV500为例)。
├── cmd
│ ├── cmd_ao.c
│ └── Makefile-otproduct
├── include
│ ├── configs
│ │ └── hi3519dv500.h
│ └──audio_ao.h
├── Makefile-otproduct
├── product
│ ├── audio
│ │ ├── acodec
│ │ │ └── v751
│ │ │ ├── acodec.c
│ │ │ ├── acodec_def.h
│ │ │ ├── acodec.h
│ │ │ └── Makefile
│ │ └── ao
│ │ ├── ao.c
│ │ ├── arch
│ │ │ ├── common
│ │ │ │ ├── aiao_hal_common.c
│ │ │ ├── hi3519dv500
│ │ │ │ ├── aiao_hal.c
│ │ │ │ ├── amp.c
│ │ │ │ └── include
│ │ │ │ ├── aiao_hal.h
│ │ │ │ └── mpp_board.h
│ │ │ └── include
│ │ │ ├── aiao_hal_common.h
│ │ │ └── aiao_reg.h
│ │ ├── include
│ │ │ ├── amp.h
│ │ │ ├── ao.h
│ │ │ ├── audio_common_aio.h
│ │ │ └── type.h
│ │ └── Makefile
说明:
对于芯片Hi3516DV500,上述hi3519dv500.h文件使用hi3516dv500.h文件代替。
命令行示例
下面举例进行介绍。
-
启动并配置AO设备
startao 0x82000000 0x18000 48000 2 0
-
关闭AO设备
stopao
注意事项
- 开机声音功能默认不开启,如需要该功能,请将boot源码目录下的include/configs/hi35xx.h文件中的定义CONFIG_AUDIO_ENABLE打开(默认是关闭状态/* Open it as you need #define CONFIG_AUDIO_ENABLE */),然后重新编译boot。
- 开机声音只支持从芯片内置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可调。
- startao传入的数据地址及长度须是32Byte对齐。
- boot默认开启了dcache,在调用startao之前建议增加刷新dcache的操作,命令为dcache flush,否则可能会导致播放杂音。




