Skip to content

ESP32C2无法在使能CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY的情况下使用BLE client连接设备 #920

Open
@LingHsvan

Description

@LingHsvan

Answers checklist

  • I have read the documentation ESP-AT Programming Guide and the issue is not addressed there.
  • I have used the latest released firmware or have updated my ESP-AT branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

AT+GMR

AT+GMR
AT version:3.5.0.0-dev(33af283 - ESP32C2 - Mar 13 2025 10:42:23)
SDK version:v5.4-dev-4351-g67c1de1eeb-dirty
compile time(7e04371):Mar 24 2025 16:29:48
Bin version:v4.1.0.0-dev(ESP32C2-BLE-2MB)
OK

ESP-AT Firmware Source

  1. 克隆esp-at的master分支
  2. build.py选择ESP32C2-BLE-2MB预设(选择-G2预设也能复现)
  3. build.py menuconfig开启CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY(开CONFIG_BT_LE_PLACE_CONN_RELATED_INTO_IRAM没有影响)
  4. 编译

Hardware Information

ESP8684-DevKit-M-1,分别使用ECO3和ECO4芯片的开发板测试

Power Supply used

USB

What is the expected behavior?

AT应该返回OK后保持连接

What is the actual behavior?

AT返回OK会迅速断开连接

Probability of recurrence

必现

AT+SYSRAM?

AT+SYSRAM?
+SYSRAM:81028,78068
OK

Steps to reproduce

  1. AT+BLEINIT=1
  2. AT+BLECONN=0,"dc:da:0c:c1:06:42"

AT command port output

» AT+BLECONN=0,"dc:da:0c:c1:06:42"
« 2025/3/25 15:31:13.521 << 
AT+BLECONN=0,"dc:da:0c:c1:06:42"
2025/3/25 15:31:13.566 << 
+BLECONN:0,"dc:da:0c:c1:06:42"
2025/3/25 15:31:13.838 << 

OK
2025/3/25 15:31:13.884 << 
+BLECONN:0,"dc:da:0c:c1:06:42"
2025/3/25 15:31:14.218 << 
+BLECONN:0,"dc:da:0c:c1:06:42"
2025/3/25 15:31:14.554 << 
+BLECONN:0,"dc:da:0c:c1:06:42"
2025/3/25 15:31:14.858 << 
+BLEDISCONN:0,"dc:da:0c:c1:06:42"

AT log port output

2025/3/25 15:31:13.536 << 
I (986818) at-ble: connection established, status=0
I (986818) at-ble: handle=1 our_ota_addr_type=0 our_ota_addr=a6:0f:82:76:ef:d0
I (986819) at-ble: our_id_addr_type=0 our_id_addr=a6:0f:82:76:ef:d0
I (986825) at-ble: peer_ota_addr_type=0 peer_ota_addr=42:06:c1:0c:da:dc
I (986831) at-ble: peer_id_addr_type=0 peer_id_addr=42:06:c1:0c:da:dc
I (986837) at-ble: conn_itvl=40 conn_latency=0 supervision_timeout=256 encrypted=0 authenticated=0 bonded=0
2025/3/25 15:31:13.914 << 
I (987147) at-ble: connection established, status=0
I (987147) at-ble: handle=1 our_ota_addr_type=0 our_ota_addr=a6:0f:82:76:ef:d0
I (987148) at-ble: our_id_addr_type=0 our_id_addr=a6:0f:82:76:ef:d0
I (987154) at-ble: peer_ota_addr_type=0 peer_ota_addr=42:06:c1:0c:da:dc
I (987160) at-ble: peer_id_addr_type=0 peer_id_addr=42:06:c1:0c:da:dc
I (987166) at-ble: conn_itvl=40 conn_latency=0 supervision_timeout=256 encrypted=0 authenticated=0 bonded=0
2025/3/25 15:31:14.234 << 
I (987475) at-ble: connection established, status=0
I (987476) at-ble: handle=1 our_ota_addr_type=0 our_ota_addr=a6:0f:82:76:ef:d0
I (987476) at-ble: our_id_addr_type=0 our_id_addr=a6:0f:82:76:ef:d0
I (987482) at-ble: peer_ota_addr_type=0 peer_ota_addr=42:06:c1:0c:da:dc
I (987488) at-ble: peer_id_addr_type=0 peer_id_addr=42:06:c1:0c:da:dc
I (987494) at-ble: conn_itvl=40 conn_latency=0 supervision_timeout=256 encrypted=0 authenticated=0 bonded=0
2025/3/25 15:31:14.569 << 
I (987807) at-ble: connection established, status=0
I (987808) at-ble: handle=1 our_ota_addr_type=0 our_ota_addr=a6:0f:82:76:ef:d0
I (987808) at-ble: our_id_addr_type=0 our_id_addr=a6:0f:82:76:ef:d0
I (987814) at-ble: peer_ota_addr_type=0 peer_ota_addr=42:06:c1:0c:da:dc
I (987820) at-ble: peer_id_addr_type=0 peer_id_addr=42:06:c1:0c:da:dc
I (987826) at-ble: conn_itvl=40 conn_latency=0 supervision_timeout=256 encrypted=0 authenticated=0 bonded=0
2025/3/25 15:31:14.874 << 
W (988108) at-ble: disconnect, reason=574
I (988108) at-ble: handle=1 our_ota_addr_type=0 our_ota_addr=a6:0f:82:76:ef:d0
I (988108) at-ble: our_id_addr_type=0 our_id_addr=a6:0f:82:76:ef:d0
I (988113) at-ble: peer_ota_addr_type=0 peer_ota_addr=42:06:c1:0c:da:dc
I (988120) at-ble: peer_id_addr_type=0 peer_id_addr=42:06:c1:0c:da:dc
I (988126) at-ble: conn_itvl=40 conn_latency=0 supervision_timeout=256 encrypted=0 authenticated=0 bonded=0

有时disconnec_reason是520,连接超时。有时是574,未能建立连接。

More Information.

首先我是在2MB的固件上同时开启WiFi和BLE,使能CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY去节省RAM。但发现使能该选项会引发问题后改而使用BLE-2MB预设和BLE-2MB-G2预设分别在ECO3和ECO4芯片的开发板上验证,均能复现问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions