I am currently running into an issue with BLE advertising causing a core panic. This is 100% reproducible with minimal code.
It will always crash after attempting to start advertising after the controller has been disabled and re-enabled.
After setting up BLE, the following task can be run to cause a crash (Note, some code has not been included, but its the ble_adv example with some minor modifications).
Code: Select all
void bleAdvtTask(void *pvParameters)
{
int cmd_cnt = 0;
bool send_avail = false;
esp_vhci_host_register_callback(&vhci_host_cb);
printf("BLE advt task start\n");
while (1) {
vTaskDelay(1000 / portTICK_PERIOD_MS);
send_avail = esp_vhci_host_check_send_available();
if (send_avail) {
switch (cmd_cnt) {
case 0: bt_controller_enable(); ++cmd_cnt; break;
case 1: hci_cmd_send_reset(); ++cmd_cnt; break;
case 2: hci_cmd_send_ble_set_adv_param(); ++cmd_cnt; break;
case 3: hci_cmd_send_ble_set_adv_data(); ++cmd_cnt; break;
case 4: hci_cmd_send_ble_adv_start(); ++cmd_cnt; break;
case 5: hci_cmd_send_ble_adv_stop(); ++cmd_cnt; break;
case 6: bt_controller_disable(); ++cmd_cnt; break;
}
}
printf("BLE Advertise, flag_send_avail: %d, cmd_sent: %d\n", send_avail, cmd_cnt);
cmd_cnt %= 6 + 1;
}
}
Code: Select all
ASSERT_PARAM(512 0), in rwble.c at line 235
Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)
Core 0 register dump:
PC : 0x40086a09 PS : 0x00060034 A0 : 0x8008a8fc A1 : 0x3ffbe260
0x40086a09: r_assert_param at ??:?
A2 : 0x00000001 A3 : 0x00000000 A4 : 0x00000000 A5 : 0x60008054
A6 : 0x3ffbdbb4 A7 : 0x60008050 A8 : 0x80086a09 A9 : 0x3ffbe240
A10 : 0x00000004 A11 : 0x00000000 A12 : 0x6000804c A13 : 0xffffffff
A14 : 0x00000000 A15 : 0xfffffffc SAR : 0x00000004 EXCCAUSE: 0x00000005
EXCVADDR: 0x00000000 LBEG : 0x40086941 LEND : 0x40086948 LCOUNT : 0x00000000
0x40086941: r_assert_param at ??:?
0x40086948: r_assert_param at ??:?
Core 0 was running in ISR context:
EPC1 : 0x400fd8b2 EPC2 : 0x00000000 EPC3 : 0x00000000 EPC4 : 0x40086a09
0x400fd8b2: esp_pm_impl_waiti at C:/Users/livingstonem/Downloads/esp-idf/components/esp32/pm_esp32.c:487
0x40086a09: r_assert_param at ??:?
ELF file SHA256: 7fa51598400cbe5f99bb6df66b77edec1e93f6a2ae016aecc22e1b3798268820
Backtrace: 0x40086a09:0x3ffbe260 0x4008a8f9:0x3ffbe280 0x4008b4e7:0x3ffbe2a0 0x40082c25:0x3ffbe2c0 0x400fd8af:0x3ffbbc80 0x400d2d17:0x3ffbbca0 0x4008ebe5:0x3ffbbcc0 0x4008d15d:0x3ffbbce0
0x40086a09: r_assert_param at ??:?
0x4008a8f9: r_rwble_isr at ??:?
0x4008b4e7: r_rwbtdm_isr_wrapper at intc.c:?
0x40082c25: _xt_lowint1 at C:/Users/livingstonem/Downloads/esp-idf/components/freertos/xtensa_vectors.S:1154
0x400fd8af: esp_pm_impl_waiti at C:/Users/livingstonem/Downloads/esp-idf/components/esp32/pm_esp32.c:487
0x400d2d17: esp_vApplicationIdleHook at C:/Users/livingstonem/Downloads/esp-idf/components/esp32/freertos_hooks.c:86
0x4008ebe5: prvIdleTask at C:/Users/livingstonem/Downloads/esp-idf/components/freertos/tasks.c:4560
0x4008d15d: vPortTaskWrapper at C:/Users/livingstonem/Downloads/esp-idf/components/freertos/port.c:403
Core 1 register dump:
PC : 0x400fd8b2 PS : 0x00060634 A0 : 0x800d2d1a A1 : 0x3ffbc3f0
0x400fd8b2: esp_pm_impl_waiti at C:/Users/livingstonem/Downloads/esp-idf/components/esp32/pm_esp32.c:487
A2 : 0x00000000 A3 : 0x80000001 A4 : 0x00000000 A5 : 0x00000001
A6 : 0x00000003 A7 : 0x00060023 A8 : 0x800d29fa A9 : 0x3ffbc3c0
A10 : 0x00000000 A11 : 0x00060623 A12 : 0x00060620 A13 : 0x00000001
A14 : 0x00060620 A15 : 0x3ffbd310 SAR : 0x00000000 EXCCAUSE: 0x00000005
EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
ELF file SHA256: 7fa51598400cbe5f99bb6df66b77edec1e93f6a2ae016aecc22e1b3798268820
Backtrace: 0x400fd8b2:0x3ffbc3f0 0x400d2d17:0x3ffbc410 0x4008ebe5:0x3ffbc430 0x4008d15d:0x3ffbc450
0x400fd8b2: esp_pm_impl_waiti at C:/Users/livingstonem/Downloads/esp-idf/components/esp32/pm_esp32.c:487
0x400d2d17: esp_vApplicationIdleHook at C:/Users/livingstonem/Downloads/esp-idf/components/esp32/freertos_hooks.c:86
0x4008ebe5: prvIdleTask at C:/Users/livingstonem/Downloads/esp-idf/components/freertos/tasks.c:4560
0x4008d15d: vPortTaskWrapper at C:/Users/livingstonem/Downloads/esp-idf/components/freertos/port.c:403
Rebooting...
Thanks.