乐鑫技术交流
直播中

李娟

7年用户 1304经验值
私信 关注
[问答]

编译esp-adf时无法选择Custom audio board,选择了就报错,为什么?

D:/iot/esp32/sdk/esp-adf/components/audio_hal/driver/es8156/es8156.c: In function 'es8156_codec_init':
D:/iot/esp32/sdk/esp-adf/components/audio_hal/driver/es8156/es8156.c:43:22: error: 'BOARD_PA_GAIN' undeclared (first use in this function)
     .board_pa_gain = BOARD_PA_GAIN,                        
                      ^~~~~~~~~~~~~
D:/iot/esp32/sdk/esp-adf/components/audio_hal/driver/es8156/es8156.c:175:41: note: in expansion of macro 'ES8156_DAC_VOL_CFG_DEFAULT'
     codec_dac_volume_config_t vol_cfg = ES8156_DAC_VOL_CFG_DEFAULT();
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/iot/esp32/sdk/esp-adf/components/audio_hal/driver/es8156/es8156.c:43:22: note: each undeclared identifier is reported only once for each function it appears in
     .board_pa_gain = BOARD_PA_GAIN,                        
                      ^~~~~~~~~~~~~
D:/iot/esp32/sdk/esp-adf/components/audio_hal/driver/es8156/es8156.c:175:41: note: in expansion of macro 'ES8156_DAC_VOL_CFG_DEFAULT'
     codec_dac_volume_config_t vol_cfg = ES8156_DAC_VOL_CFG_DEFAULT();
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
[24/150] Building C object esp-idf/esp-adf-libs/CMakeFiles/__idf_esp-adf-libs.dir/esp_codec/audio_forge.c.obj
ninja: build stopped: subcommand failed.
ninja failed with exit code 1

D:iotesp32sdkesp-adfprojecta2dp_stream_with_tp123_copy>
                                                                                                                                                                        

回帖(1)

张飞雄

2024-6-28 16:41:57
从您提供的错误信息来看,问题出在编译过程中,编译器在处理es8156.c文件时遇到了一个未声明的宏定义`BOARD_PA_GAIN`。这可能是由于以下几个原因导致的:

1. **宏定义缺失**:在您的项目或自定义音频板的配置中可能没有定义`BOARD_PA_GAIN`。这个宏定义通常用于设置板载功率放大器(PA)的增益。

2. **配置错误**:可能是您的项目配置不正确,没有正确地包含或引用了包含`BOARD_PA_GAIN`定义的文件。

3. **环境问题**:有时候,编译环境的问题也可能导致这类错误,比如路径错误或者编译器设置不正确。

为了解决这个问题,您可以尝试以下步骤:

- **检查宏定义**:确保您的项目或自定义音频板的配置文件中包含了`BOARD_PA_GAIN`的定义。这通常在项目的`sdkconfig`文件或相关的头文件中定义。

- **检查包含文件**:确保所有需要的头文件都被正确包含在您的项目中。如果`BOARD_PA_GAIN`在某个特定的头文件中定义,那么您需要确保该文件被包含。

- **检查项目配置**:如果您使用的是ESP-ADF的某个特定版本,确保您的项目配置与该版本兼容。有时候,不同版本的配置文件可能有所不同。

- **清理和重新编译**:有时候,编译过程中的缓存可能会导致问题。尝试清理项目(例如使用`make clean`命令)然后重新编译。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分