Closed lida2003 closed 10 months ago
@lida2003 Hi,how can I reproduce the issue?
@lida2003 Hi,how can I reproduce the issue?
1) Follow this guide(https://github.com/SnapDragonfly/SnapAirUnit/blob/main/docs/Build_and_Flash.md)
2) use latest code
3) set target to esp32c3
esp32 works fine.
@lida2003 Is the Bluetooth Low Energy configuration option turned on? Location: (Top) → Component config → Bluetooth → Bluedroid Option
I reproduced the issue when I disable "Bluetooth Low Energy configuration" in menuconfig:
LATFORM -D_POSIX_READER_WRITER_LOCKS -Wno-implicit-fallthrough -Wno-unused-const-variable -Wno-format -MD -MT esp-idf/bt/CMakeFiles/idf_bt.dir/host/bluedroid/hci/hci_layer.c.obj -MF esp-idf/bt/CMakeFiles/idf_bt.dir/host/bluedroid/hci/hci_layer.c.obj.d -o esp-idf/bt/CMakeFiles/__idf_bt.dir/host/bluedroid/hci/hci_layer.c.obj -c /home/zhanghaipeng/esp_v5/esp-idf/components/bt/host/bluedroid/hci/hci_layer.c
/home/zhanghaipeng/esp_v5/esp-idf/components/bt/host/bluedroid/hci/hci_layer.c: In function 'hci_layer_init_env':
/home/zhanghaipeng/esp_v5/esp-idf/components/bt/host/bluedroid/hci/hci_layer.c:189:5: error: implicit declaration of function 'btsnd_hcic_ble_sync_sem_init'; did you mean 'btsnd_hcic_ble_set_phy'? [-Werror=implicit-function-declaration]
189 | btsnd_hcic_ble_sync_sem_init();
| ^~~~~~~~
| btsnd_hcic_ble_set_phy
/home/zhanghaipeng/esp_v5/esp-idf/components/bt/host/bluedroid/hci/hci_layer.c: In function 'hci_layer_deinit_env':
/home/zhanghaipeng/esp_v5/esp-idf/components/bt/host/bluedroid/hci/hci_layer.c:215:5: error: implicit declaration of function 'btsnd_hcic_ble_sync_sem_deinit' [-Werror=implicit-function-declaration]
215 | btsnd_hcic_ble_sync_sem_deinit();
| ^~~~~~~~~~
/home/zhanghaipeng/esp_v5/esp-idf/components/bt/host/bluedroid/hci/hci_layer.c: In function 'filter_incoming_event':
/home/zhanghaipeng/esp_v5/esp-idf/components/bt/host/bluedroid/hci/hci_layer.c:452:36: error: implicit declaration of function 'btsnd_hcic_ble_get_sync_info'; did you mean 'btsnd_hcic_ble_ext_scan_enable'? [-Werror=implicit-function-declaration]
452 | BlE_SYNC sync_info = btsnd_hcic_ble_get_sync_info();
| ^~~~~~~~
| btsnd_hcic_ble_ext_scan_enable
/home/zhanghaipeng/esp_v5/esp-idf/components/bt/host/bluedroid/hci/hci_layer.c:452:36: warning: initialization of 'BlE_SYNC ' from 'int' makes pointer from integer without a cast [-Wint-conversion]
cc1: some warnings being treated as errors
[897/1162] Building C object esp-idf/bt/CMakeFiles/__idf_bt.dir/host/bluedroid/stack/avrc/avrc_sdp.c.objninja: build stopped: subcommand failed.
but when I enable it, the issue gone:
used-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -DconfigENABLE_FREERTOS_DEBUG_OCDAWARE=1 -std=gnu17 -Wno-old-style-declaration -D_GNU_SOURCE -DIDF_VER=\"v5.0.2-285-g7493b907ef\" -DESP_PLATFORM -D_POSIX_READER_WRITER_LOCKS -Wno-format -MD -MT esp-idf/main/CMakeFiles/idf_main.dir/btspp.c.obj -MF esp-idf/main/CMakeFiles/__idf_main.dir/btspp.c.obj.d -o esp-idf/main/CMakeFiles/idf_main.dir/btspp.c.obj -c ../main/btspp.c
In file included from ../main/handle.h:4,
from ../main/btspp.c:34:
../main/blink.h:48:5: error: unknown type name 'led_strip_handle_t'
48 | led_strip_handle_t strip;
| ^~~~~~
../main/btspp.c: In function 'task_bt_start_spp':
../main/btspp.c:413:5: warning: 'esp_spp_init' is deprecated: Please use esp_spp_enhanced_init [-Wdeprecated-declarations]
413 | if ((ret = esp_spp_init(g_esp_spp_mode)) != ESP_OK) {
| ^~
In file included from ../main/btspp.c:21:
/home/zhanghaipeng/esp_v5/esp-idf/components/bt/host/bluedroid/api/include/api/esp_spp_api.h:261:11: note: declared here
261 | esp_err_t esp_spp_init(esp_spp_mode_t mode) attribute((deprecated("Please use esp_spp_enhanced_init")));
| ^~~~
[1105/1138] Building C object esp-idf/espressifmdns/CMakeFiles/idf_espressif__mdns.dir/mdns.c.objninja: build stopped: subcommand failed.
Is the Bluetooth Low Energy configuration option turned on? Location: (Top) → Component config → Bluetooth → Bluedroid Option
Yes, but when enable "Bluetooth Low Energy configuration", a) managed component led_strip can't be used. b) we don't use "Bluetooth Low Energy" feature.
Is there any way to work around without changing the source code? upgrade esp-idf?
@lida2003 You need to declare the dependency on the led_strip component.
for example,in components/command/cmd_udp/CMakeLists.txt
idf_component_register(SRCS "cmd_udp.c"
INCLUDE_DIRS . ../../../ ../../../main ../../button/include
PRIV_REQUIRES driver esp_timer esp_event led_strip)
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
and add
#include "led_strip.h"
in main/blink.h
@zhp0406
We have declared the dependency on the led_strip component. And all works fine.
BUT
When enable "Bluetooth Low Energy configuration", it fails.
--- updated
-- Build files have been written to: /home/daniel/SnapDragonfly/SnapAirUnit/build/bootloader
[1/1] cd /home/daniel/SnapDragonfly/SnapAirUnit/build/bootloader/esp-idf/esptool_p...tloader 0x0 /home/daniel/SnapDragonfly/SnapAirUnit/build/bootloader/bootloader.binBootloader binary size 0x4ef0 bytes. 0x3110 bytes (38%) free.
[1108/1139] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/btspp.c.obj/home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c: In function 'task_bt_start_spp':
/home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:413:5: warning: 'esp_spp_init' is deprecated: Please use esp_spp_enhanced_init [-Wdeprecated-declarations]
413 | if ((ret = esp_spp_init(g_esp_spp_mode)) != ESP_OK) {
| ^~
In file included from /home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:21:
/home/daniel/SnapDragonfly/esp-idf-v5.0/components/bt/host/bluedroid/api/include/api/esp_spp_api.h:261:11: note: declared here
261 | esp_err_t esp_spp_init(esp_spp_mode_t mode) __attribute__((deprecated("Please use esp_spp_enhanced_init")));
| ^~~~~~~~~~~~
[1137/1139] Linking CXX executable SnapAirUnit.elfFAILED: SnapAirUnit.elf
: && /home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/riscv32-esp-elf-g++ -march=rv32imc -nostartfiles -march=rv32imc --specs=nosys.specs CMakeFiles/SnapAirUnit.elf.dir/project_elf_src_esp32c3.c.obj -o SnapAirUnit.elf esp-idf/riscv/libriscv.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/efuse/libefuse.a esp-idf/driver/libdriver.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_partition/libesp_partition.a esp-idf/app_update/libapp_update.a esp-idf/spi_flash/libspi_flash.a esp-idf/pthread/libpthread.a esp-idf/esp_system/libesp_system.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/cxx/libcxx.a esp-idf/esp_common/libesp_common.a esp-idf/esp_timer/libesp_timer.a esp-idf/app_trace/libapp_trace.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_phy/libesp_phy.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/bt/libbt.a esp-idf/unity/libunity.a esp-idf/cmock/libcmock.a esp-idf/console/libconsole.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_eth/libesp_eth.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/esp_hid/libesp_hid.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/esp_lcd/libesp_lcd.a esp-idf/protobuf-c/libprotobuf-c.a esp-idf/protocomm/libprotocomm.a esp-idf/esp_local_ctrl/libesp_local_ctrl.a esp-idf/espcoredump/libespcoredump.a esp-idf/wear_levelling/libwear_levelling.a esp-idf/sdmmc/libsdmmc.a esp-idf/fatfs/libfatfs.a esp-idf/json/libjson.a esp-idf/mqtt/libmqtt.a esp-idf/spiffs/libspiffs.a esp-idf/wifi_provisioning/libwifi_provisioning.a esp-idf/espressif__led_strip/libespressif__led_strip.a esp-idf/espressif__mdns/libespressif__mdns.a esp-idf/main/libmain.a esp-idf/button/libbutton.a esp-idf/cmd_udp/libcmd_udp.a esp-idf/cmd_sau/libcmd_sau.a esp-idf/cmd_nvs/libcmd_nvs.a -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C3=0 -Wl,--Map="/home/daniel/SnapDragonfly/SnapAirUnit/build/SnapAirUnit.map" -fno-rtti -fno-lto -Wl,--gc-sections -Wl,--warn-common esp-idf/app_trace/libapp_trace.a esp-idf/app_trace/libapp_trace.a -lgcov esp-idf/app_trace/libapp_trace.a -lgcov esp-idf/cmock/libcmock.a esp-idf/unity/libunity.a esp-idf/esp_hid/libesp_hid.a esp-idf/esp_lcd/libesp_lcd.a esp-idf/esp_local_ctrl/libesp_local_ctrl.a esp-idf/espcoredump/libespcoredump.a esp-idf/fatfs/libfatfs.a esp-idf/wear_levelling/libwear_levelling.a esp-idf/sdmmc/libsdmmc.a esp-idf/mqtt/libmqtt.a esp-idf/spiffs/libspiffs.a esp-idf/wifi_provisioning/libwifi_provisioning.a esp-idf/protocomm/libprotocomm.a esp-idf/bt/libbt.a -L/home/daniel/SnapDragonfly/esp-idf-v5.0/components/bt/controller/lib_esp32c3_family/esp32c3 -lbtdm_app esp-idf/protobuf-c/libprotobuf-c.a esp-idf/json/libjson.a esp-idf/espressif__mdns/libespressif__mdns.a esp-idf/espressif__led_strip/libespressif__led_strip.a esp-idf/console/libconsole.a esp-idf/riscv/libriscv.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/efuse/libefuse.a esp-idf/driver/libdriver.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_partition/libesp_partition.a esp-idf/app_update/libapp_update.a esp-idf/spi_flash/libspi_flash.a esp-idf/pthread/libpthread.a esp-idf/esp_system/libesp_system.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/cxx/libcxx.a esp-idf/esp_common/libesp_common.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_phy/libesp_phy.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_eth/libesp_eth.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcoexist.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcore.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libespnow.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libmesh.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libnet80211.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libpp.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libsmartconfig.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libwapi.a esp-idf/riscv/libriscv.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/efuse/libefuse.a esp-idf/driver/libdriver.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_partition/libesp_partition.a esp-idf/app_update/libapp_update.a esp-idf/spi_flash/libspi_flash.a esp-idf/pthread/libpthread.a esp-idf/esp_system/libesp_system.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/cxx/libcxx.a esp-idf/esp_common/libesp_common.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_phy/libesp_phy.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_eth/libesp_eth.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcoexist.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcore.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libespnow.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libmesh.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libnet80211.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libpp.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libsmartconfig.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libwapi.a esp-idf/riscv/libriscv.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/efuse/libefuse.a esp-idf/driver/libdriver.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_partition/libesp_partition.a esp-idf/app_update/libapp_update.a esp-idf/spi_flash/libspi_flash.a esp-idf/pthread/libpthread.a esp-idf/esp_system/libesp_system.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/cxx/libcxx.a esp-idf/esp_common/libesp_common.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_phy/libesp_phy.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_eth/libesp_eth.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcoexist.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcore.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libespnow.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libmesh.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libnet80211.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libpp.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libsmartconfig.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libwapi.a esp-idf/riscv/libriscv.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/efuse/libefuse.a esp-idf/driver/libdriver.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_partition/libesp_partition.a esp-idf/app_update/libapp_update.a esp-idf/spi_flash/libspi_flash.a esp-idf/pthread/libpthread.a esp-idf/esp_system/libesp_system.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/cxx/libcxx.a esp-idf/esp_common/libesp_common.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_phy/libesp_phy.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_eth/libesp_eth.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcoexist.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcore.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libespnow.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libmesh.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libnet80211.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libpp.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libsmartconfig.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libwapi.a esp-idf/riscv/libriscv.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/efuse/libefuse.a esp-idf/driver/libdriver.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_partition/libesp_partition.a esp-idf/app_update/libapp_update.a esp-idf/spi_flash/libspi_flash.a esp-idf/pthread/libpthread.a esp-idf/esp_system/libesp_system.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/cxx/libcxx.a esp-idf/esp_common/libesp_common.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_phy/libesp_phy.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_eth/libesp_eth.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcoexist.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcore.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libespnow.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libmesh.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libnet80211.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libpp.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libsmartconfig.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libwapi.a esp-idf/riscv/libriscv.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/efuse/libefuse.a esp-idf/driver/libdriver.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_partition/libesp_partition.a esp-idf/app_update/libapp_update.a esp-idf/spi_flash/libspi_flash.a esp-idf/pthread/libpthread.a esp-idf/esp_system/libesp_system.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/cxx/libcxx.a esp-idf/esp_common/libesp_common.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_phy/libesp_phy.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_eth/libesp_eth.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcoexist.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libcore.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libespnow.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libmesh.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libnet80211.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libpp.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libsmartconfig.a /home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3/libwapi.a -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u start_app -L "/home/daniel/SnapDragonfly/SnapAirUnit/build/esp-idf/esp_system/ld" -T memory.ld -T sections.ld -u __ubsan_include -L "/home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_rom/esp32c3/ld" -T esp32c3.rom.ld -T esp32c3.rom.api.ld -T esp32c3.rom.libgcc.ld -T esp32c3.rom.newlib.ld -T esp32c3.rom.version.ld -T esp32c3.rom.eco3.ld -u __assert_func -L "/home/daniel/SnapDragonfly/esp-idf-v5.0/components/soc/esp32c3/ld" -T esp32c3.peripherals.ld -Wl,--undefined=uxTopUsedPriority -Wl,--undefined=FreeRTOS_openocd_params -u app_main -lc -lm esp-idf/newlib/libnewlib.a -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -Wl,--wrap=_Unwind_SetEnableExceptionFdeSorting -Wl,--wrap=__register_frame_info_bases -Wl,--wrap=__register_frame_info -Wl,--wrap=__register_frame -Wl,--wrap=__register_frame_info_table_bases -Wl,--wrap=__register_frame_info_table -Wl,--wrap=__register_frame_table -Wl,--wrap=__deregister_frame_info_bases -Wl,--wrap=__deregister_frame_info -Wl,--wrap=_Unwind_Find_FDE -Wl,--wrap=_Unwind_GetGR -Wl,--wrap=_Unwind_GetCFA -Wl,--wrap=_Unwind_GetIP -Wl,--wrap=_Unwind_GetIPInfo -Wl,--wrap=_Unwind_GetRegionStart -Wl,--wrap=_Unwind_GetDataRelBase -Wl,--wrap=_Unwind_GetTextRelBase -Wl,--wrap=_Unwind_SetIP -Wl,--wrap=_Unwind_SetGR -Wl,--wrap=_Unwind_GetLanguageSpecificData -Wl,--wrap=_Unwind_FindEnclosingFunction -Wl,--wrap=_Unwind_Resume -Wl,--wrap=_Unwind_RaiseException -Wl,--wrap=_Unwind_DeleteException -Wl,--wrap=_Unwind_ForcedUnwind -Wl,--wrap=_Unwind_Resume_or_Rethrow -Wl,--wrap=_Unwind_Backtrace -Wl,--wrap=__cxa_call_unexpected -Wl,--wrap=__gxx_personality_v0 -u __cxa_guard_dummy -lstdc++ esp-idf/pthread/libpthread.a -lgcc esp-idf/cxx/libcxx.a -u __cxx_fatal_exception -L "/home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_phy/lib/esp32c3" -u include_esp_phy_override -lphy -lbtbb esp-idf/esp_phy/libesp_phy.a -lphy -lbtbb esp-idf/esp_phy/libesp_phy.a -lphy -lbtbb -u vfs_include_syscalls_impl -L "/home/daniel/SnapDragonfly/esp-idf-v5.0/components/esp_wifi/lib/esp32c3" && :
/home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: esp-idf/main/libmain.a(msp_protocol.c.obj): in function `ttl_handle_bt_package':
/home/daniel/SnapDragonfly/SnapAirUnit/main/msp_protocol.c:595: undefined reference to `esp_spp_write'
/home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: esp-idf/main/libmain.a(btspp.c.obj): in function `esp_bt_gap_cb':
/home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:294: undefined reference to `esp_bt_gap_pin_reply'
/home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: /home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:304: undefined reference to `esp_bt_gap_pin_reply'
/home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: esp-idf/main/libmain.a(btspp.c.obj): in function `esp_spp_cb':
/home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:94: undefined reference to `esp_spp_start_srv'
/home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: /home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:265: undefined reference to `esp_bt_gap_set_scan_mode'
/home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: esp-idf/main/libmain.a(btspp.c.obj): in function `task_bt_start_spp':
/home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:398: undefined reference to `esp_bt_gap_register_callback'
/home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: /home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:403: undefined reference to `esp_spp_register_callback'
/home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: /home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:408: undefined reference to `esp_spp_init'
/home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: /home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:413: undefined reference to `esp_bt_gap_set_pin'
/home/daniel/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/11.2.0/../../../../riscv32-esp-elf/bin/ld: esp-idf/main/libmain.a(btspp.c.obj): in function `bt_spp_stop':
/home/daniel/SnapDragonfly/SnapAirUnit/main/btspp.c:414: undefined reference to `esp_spp_deinit'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
ninja failed with exit code 1, output of the command is in the /home/daniel/SnapDragonfly/SnapAirUnit/build/log/idf_py_stderr_output_45740 and /home/daniel/SnapDragonfly/SnapAirUnit/build/log/idf_py_stdout_output_45740
@lida2003 I understand. Please test the following fix: 0001-fix-bt-bluedroid-Fix-bluedroid-menuconfig-error.patch
@lida2003 It should be noted that the ESP32 only supports Classic Bluetooth and does not support BLE. If you require BLE features, please use ESP32c2, ESP32c6, ESP32c3, or ESP32s3.
@lida2003 After you have applied my patch, if there are still failures, please provide me with the latest failure log so that I can analyze the reasons.thanks.
If you require BLE features, please use ESP32c2, ESP32c6, ESP32c3, or ESP32s3.
No, we don't need BLE.
If you require BLE features, please use ESP32c2, ESP32c6, ESP32c3, or ESP32s3.
No, we don't need BLE.
If you use Classic Bluetooth, then only ESP32 is supported.
After you have applied my patch, if there are still failures, please provide me with the latest failure log so that I can analyze the reasons.thanks.
daniel@palfocus:~/SnapDragonfly/esp-idf-v5.0$ git apply 0001-fix-bt-bluedroid-Fix-bluedroid-menuconfig-error.patch
error: patch failed: components/bt/host/bluedroid/Kconfig.in:1133
error: components/bt/host/bluedroid/Kconfig.in: patch does not apply
daniel@palfocus:~/SnapDragonfly/esp-idf-v5.0$ git remote -v
origin git@github.com:espressif/esp-idf.git (fetch)
origin git@github.com:espressif/esp-idf.git (push)
daniel@palfocus:~/SnapDragonfly/esp-idf-v5.0$ git log -n 1
commit 7493b907efd081332c1f1ef3167181727fbef922 (HEAD -> release/v5.0, origin/release/v5.0)
Merge: 96c4ec8df2 9156bbb55c
Author: Roland Dobai <roland@espressif.com>
Date: Fri Jun 9 00:52:47 2023 +0800
Merge branch 'feature/extend_proj_desc_json_v5.0' into 'release/v5.0'
extend information in project_description.json (v5.0)
See merge request espressif/esp-idf!24126
If you use Classic Bluetooth, then only ESP32 is supported.
We need this code to work on ESP32C3 :)
@lida2003 If you are using ESP32c3, do you still need to use Classic Bluetooth? SPP is a classic feature. I will provide you with the latest patch based on your version shortly.
SPP is a classic feature. I will provide you with the latest patch based on your version shortly.
Yes, we need spp and wifi features.
I have created the following patch based on the version you provided (commit hash: 6e8eb2a059ae11bed0edcd8fa7d9c62d142cc1d9). This patch addresses some issues in the bluedroid menuconfig. This issue may cause the BLE code to be invoked even after BLE is turned off, resulting in a compilation failure. 0001-fix-bt-bluedroid-Fix-bluedroid-menuconfig.patch
Yes, we need spp and wifi features.
If you want to use Classic Bluetooth and Wi-Fi, only the ESP32 chip supports it; currently, other chips do not support this feature.
If you want to use Classic Bluetooth and Wi-Fi, only the ESP32 chip supports it; currently, other chips do not support this feature.
ESP32-C3 doesn't support Classic Bluetooth SPP ?
If you want to use Classic Bluetooth and Wi-Fi, only the ESP32 chip supports it; currently, other chips do not support this feature.
ESP32-C3 doesn't support Classic Bluetooth SPP ?
yes,ESP32-C3 doesn't support Classic Bluetooth SPP.ESP32-C3 only support BLE.
ESP32 support BLE and Classic Bluetooth.
What I have missed here. The spec says it supports Bluetooth 5.0, no spp?
Is there any SPP over BLE features, like https://docs.silabs.com/bluetooth/2.13/code-examples/applications/spp-serial-port-profile-over-ble ?
@lida2003 You may have some misunderstandings about Bluetooth LE: Bluetooth 5 in the document. This explanation is for BLE.
SPP is originally a profile for classic Bluetooth, and there is no corresponding profile in BLE.
However, BLE simulates SPP and implements transparent transmission. We have two examples based on BLE for transparent transmission.I'm not sure if it can meet your requirements.
BLE SPP example: https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/ble/ble_spp_server https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/ble/ble_spp_client
I have found https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32c3/api-reference/bluetooth/esp_spp.html, which states esp32c3 supports classic bt spp profile.
The above ble spp demo (server/client) is NOT like classic spp profile, where pc already has the driver. And pc doesn't have ble spp driver.
@lida2003 Yes, BLE's SPP belongs to a custom profile, not a profile that is recognized as a standard by the Bluetooth Special Interest Group (SIG).
@lida2003 If you insist on using the ESP32-C3 chip, you will need to give up using classic Bluetooth and explore other methods to implement your functionality.
How to explain the description below: esp-idf v4.3 esp32c3 bluetooth/esp_spp
Any idea? Or this manual is wrong about esp-idf v4.3 esp32c3 support esp_spp API?
https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32c3/api-reference/bluetooth/esp_spp.html
@lida2003 I sincerely apologize for the confusion. There is a misguidance in the document. This is an error in the document, and ESP32-C3 does not support Classic Bluetooth. The document will be updated accordingly.
OK, if we implement a ble spp. Is there any application avaliable out there on PC(linux, windows)?
@lida2003 Currently, I haven't come across any relevant applications. maybe you need to make it yourself.
OK
Answers checklist.
IDF version.
v5.0.2-285-g7493b907ef
Operating System used.
Linux
How did you build your project?
Command line with Make
If you are using Windows, please specify command line type.
None
What is the expected behavior?
like esp32 target, can build and run.
What is the actual behavior?
strange when switch from esp32 target to esp32c3target.
Steps to reproduce.
Build or installation Logs.
More Information.
No response