乐鑫技术交流
直播中

陈艳

8年用户 1043经验值
私信 关注
[问答]

使用ESP32 h2开发低功耗的过程中,无法调用低功耗接口的API如何解决?

idf版本:V5.1.1
开发板:esp-32 h2
问题描述:
在使用ESP32 h2开发低功耗的过程中,发现无法调用低功耗接口的API,而且无论是light_sleep和deep_sleep_wake_stub例子esp32h2都无法编译,都会报错,如果选择ESP32 C6芯片例程都可以编译通过,请问如何解决,报错如下所示。

c:/espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/12.2.0/../../../../riscv32-esp-elf/bin/ld.exe: esp-idf/main/libmain.a(rtc_wake_stub_example.c.obj): in function `wake_stub_example':
D:/work/esp32/deep_sleep_wake_stub/main/rtc_wake_stub_example.c:47: undefined reference to `esp_wake_stub_get_wakeup_cause'

c:/espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/12.2.0/../../../../riscv32-esp-elf/bin/ld.exe: D:/work/esp32/deep_sleep_wake_stub/main/rtc_wake_stub_example.c:51: undefined reference to `esp_wake_stub_uart_tx_wait_idle'

c:/espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/12.2.0/../../../../riscv32-esp-elf/bin/ld.exe: D:/work/esp32/deep_sleep_wake_stub/main/rtc_wake_stub_example.c:68: undefined reference to `esp_wake_stub_set_wakeup_time'

c:/espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/12.2.0/../../../../riscv32-esp-elf/bin/ld.exe: D:/work/esp32/deep_sleep_wake_stub/main/rtc_wake_stub_example.c:71: undefined reference to `esp_wake_stub_uart_tx_wait_idle'

c:/espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/12.2.0/../../../../riscv32-esp-elf/bin/ld.exe: D:/work/esp32/deep_sleep_wake_stub/main/rtc_wake_stub_example.c:74: undefined reference to `esp_wake_stub_sleep'

c:/espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/12.2.0/../../../../riscv32-esp-elf/bin/ld.exe: D:/work/esp32/deep_sleep_wake_stub/main/rtc_wake_stub_example.c:59: undefined reference to `esp_default_wake_deep_sleep'

c:/espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/12.2.0/../../../../riscv32-esp-elf/bin/ld.exe: esp-idf/main/libmain.a(wake_stub_example_main.c.obj): in function `app_main':

D:/work/esp32/deep_sleep_wake_stub/main/wake_stub_example_main.c:27: undefined reference to `esp_sleep_get_wakeup_cause'

c:/espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/12.2.0/../../../../riscv32-esp-elf/bin/ld.exe: D:/work/esp32/deep_sleep_wake_stub/main/wake_stub_example_main.c:37: undefined reference to `esp_sleep_enable_timer_wakeup'

c:/espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/12.2.0/../../../../riscv32-esp-elf/bin/ld.exe: D:/work/esp32/deep_sleep_wake_stub/main/wake_stub_example_main.c:46: undefined reference to `esp_set_deep_sleep_wake_stub'

c:/espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/12.2.0/../../../../riscv32-esp-elf/bin/ld.exe: D:/work/esp32/deep_sleep_wake_stub/main/wake_stub_example_main.c:49: undefined reference to `esp_deep_sleep_start'
                                                      

回帖(1)

杨万富

2024-6-7 17:48:07
根据您提供的问题描述和报错信息,我将为您提供一些建议来解决这个问题。请按照以下步骤操作:

1. 确认ESP-IDF版本:首先,请确保您使用的ESP-IDF版本与ESP32-H2芯片兼容。您提到的版本是V5.1.1,这是一个较新的版本,应该可以支持ESP32-H2。但是,建议您查看官方文档以确认这一点。

2. 检查开发环境:确保您的开发环境设置正确,包括工具链、SDKCONFIG文件等。您可以在ESP-IDF的官方文档中找到有关设置开发环境的详细信息。

3. 检查示例代码:请确保您使用的示例代码是针对ESP32-H2的。如果示例代码是针对其他ESP32系列芯片的,可能会出现编译错误。您可以在ESP-IDF的examples目录下找到针对不同芯片的示例代码。

4. 检查错误信息:从您提供的报错信息来看,问题可能出在链接阶段。这可能是由于某些库或对象文件没有正确链接到您的项目中。请检查您的项目设置,确保所有必要的库和对象文件都已包含在内。

5. 尝试清理项目:有时候,编译器的缓存可能会导致问题。您可以尝试清理项目,然后重新编译。在ESP-IDF中,您可以使用以下命令来清理项目:

```
idf.py fullclean
```


举报

更多回帖

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