BLE Mesh Fast Prov - BT_OSI:osi_alarm_new alarm_cbs exhausted

问题描述 投票:0回答:1

我正在使用 ESP32-C3、ESP-IDF 和 esp32-c3-devkitm-1。我运行了一个项目示例快速证明服务器示例,并添加了“Store BLE Mesh configuration persistently”以将加入的网络数据存储在 NVS 闪存中到项目中。 我的问题是在将节点加入网络后(我的客户端是 nRF Mesh 移动应用程序),一切正常,但是当我重置 ESP32 并想再次连接到它时,ESP32 重置。而且我无法再次使用 nRF Mesh Mobile App 加入 ESP32。 所以我必须用一个按钮和这个函数清除 NVS 闪存:esp_ble_mesh_node_local_reset();再次进行加入过程。 重置错误是:

E (404909) BT_OSI: osi_alarm_new alarm_cbs exhausted


assert failed: hash_map_set hash_map.c:129 (data != NULL)
Core 0 register dump:
MEPC : 0x403816be RA : 0x40389470 SP : 0x3fcb3490 GP : 0x3fc91000
TP : 0x3fc80d9c T0 : 0x37363534 T1 : 0x7271706f T2 : 0x33323130
S0/FP : 0x0000008e S1 : 0x00000001 A0 : 0x3fcb34cc A1 : 0x3fc928c1
A2 : 0x00000001 A3 : 0x00000029 A4 : 0x00000001 A5 : 0x3fc9a000
A6 : 0x7a797877 A7 : 0x76757473 S2 : 0x00000009 S3 : 0x3fcb35d9
S4 : 0x3fc928c0 S5 : 0x3fcb38bc S6 : 0x00000000 S7 : 0x00000000
S8 : 0x00000000 S9 : 0x00000000 S10 : 0x00000000 S11 : 0x00000000
T3 : 0x6e6d6c6b T4 : 0x6a696867 T5 : 0x66656463 T6 : 0x62613938
MSTATUS : 0x00001881 MTVEC : 0x40380001 MCAUSE : 0x00000007 MTVAL : 0x00000000
MHARTID : 0x00000000

Stack memory:
3fcb3490: 0x00000000 0x3fcb38bc 0x3c0f6780 0x4038f1e2 0x3fc93118 0x3c0f6780 0x3fc933d4 0x3c0f6802
3fcb34b0: 0x3fc93128 0x3fcb34c4 0x3fc9312c 0x3c0e4028 0x3fc928c0 0x00393231 0x3fc9dce4 0x65737361
3fcb34d0: 0x66207472 0x656c6961 0x68203a64 0x5f687361 0x5f70616d 0x20746573 0x68736168 0x70616d5f
...
...
...
ELF file SHA256: 19cc199fd03b8d83

Rebooting...
ESP-ROM:esp32c3-api1-20210207
Build:Feb 7 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0xe (SPI_FAST_FLASH_BOOT)
Saved PC:0x403812e0
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd5810,len:0x16b4
load:0x403cc710,len:0x930
load:0x403ce710,len:0x2d28
entry 0x403cc710
I (35) boot: ESP-IDF 4.4.2 2nd stage bootloader
I (35) boot: compile time 14:51:41
I (35) boot: chip revision: 3
I (37) boot_comm: chip revision: 3, min. bootloader chip revision: 0
I (44) boot.esp32c3: SPI Speed : 80MHz
I (48) boot.esp32c3: SPI Mode : DIO
I (53) boot.esp32c3: SPI Flash Size : 4MB
I (58) boot: Enabling RNG early entropy source...
I (63) boot: Partition Table:
I (67) boot: ## Label Usage Type ST Offset Length
I (74) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (82) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (89) boot: 2 factory factory app 00 00 00010000 00200000
I (97) boot: End of partition table
I (101) boot_comm: chip revision: 3, min. application chip revision: 0
...
...
...
...

I (909) Mesh: init Bluetooth Mesh.
W (1639) BLE_MESH: bt_mesh_proxy_server_prov_disable, Already
I (1649) Mesh Prov: ESP_BLE_MESH_NODE_PROV_COMPLETE_EVT
I (1649) Prov cmplt: net_index: 0x0000, addr: 0x007e
I (1649) Prov cmplt: flags: 0x0000, iv_index: 0x00000000
I (1659) Mesh Prov: ESP_BLE_MESH_PROV_REGISTER_COMP_EVT, Error Code: 0
I (1669) Mesh Prov: ESP_BLE_MESH_NODE_SET_UNPROV_DEV_NAME_COMP_EVT, Error Code: 0

E (1679) BT_OSI: osi_alarm_new alarm_cbs exhausted

E (1679) BLE_MESH: Alarm not created
W (1689) BLE_MESH: bt_mesh_prov_enable, Already
I (1689) Mesh Prov: ESP_BLE_MESH_NODE_PROV_ENABLE_COMP_EVT, Error Code: -120

重置后,我再次看到BLE_MESH:未创建警报,现在如果我连接到 ESP32,重置会一次又一次地发生...

问候。

bluetooth-lowenergy microcontroller esp32 bluetooth-mesh
1个回答
0
投票

不知道大家知不知道esp-idf快速配置和普通配置的区别

快速配置是一种自动配置算法,可在网络中同时配置多个节点。您需要闪存一个快速配置客户端示例并至少闪存 2 个快速配置服务器示例以展示其用法。它并不意味着与 nRF 网格应用程序兼容,这可能是出现意外错误的原因。

nRF mesh app是一个provisioner应用程序,用于根据mesh规范进行正常配置。您不能将它与快速配置服务器示例一起使用,因为这是自定义 esp 的东西。如果你想将它与 nRF 网格一起使用,我建议你查看通用的服务器外示例

© www.soinside.com 2019 - 2024. All rights reserved.