[TW#12094] bluetooth initialization crash
Posted: Tue Apr 04, 2017 9:54 am
I am looking at my log files and on some reboots I see a crash in the bluetooth initialization.
From the backtrace I can see that bluetooth initialization is trying to take a mutex but fails.
What can I do to prevent this crash?
Do a check to see if the "global_int_mux" is taken? How do you do that?
The BackTrace:
From the backtrace I can see that bluetooth initialization is trying to take a mutex but fails.
What can I do to prevent this crash?
Do a check to see if the "global_int_mux" is taken? How do you do that?
Code: Select all
BTDM CONTROLLER VERSION: 010101
btip start
copy .data from 4000d890 to 3ffae6e0, len 00001830
set .bss 0x0 from 3ffb8000 to 3ffbff70, len 00007f70
BTDM ROM VERSION 0101
BD_ADDR: 24:0A:C4:00:8D:8A
ASSERT_PARAM(196608 0), in rwbt.c at line 360ASSERT_ERR(node != NULL), in ke_mem.c at line 270
Code: Select all
&"list *0x40084efa\n"
0x40084efa is in vTaskEnterCritical (C:/SysGCC/esp32/esp32-bsp/esp-idf/components/freertos/tasks.c:4057).
4052 vPortCPUAcquireMutex( mux );
4053 #endif
4054
4055 if( xSchedulerRunning != pdFALSE )
4056 {
4057 ( pxCurrentTCB[ xPortGetCoreID() ]->uxCriticalNesting )++;
4058
4059 if( xSchedulerRunning != pdFALSE && pxCurrentTCB[ xPortGetCoreID() ]->uxCriticalNesting == 1 )
4060 {
4061 //This is the first time we get called. Save original interrupt level.
OK
list *0x400822c9
&"list *0x400822c9\n"
0x400822c9 is in interrupt_disable (C:/SysGCC/esp32/esp32-bsp/esp-idf/components/bt/bt.c:68).
63
64 static portMUX_TYPE global_int_mux = portMUX_INITIALIZER_UNLOCKED;
65
66 static void IRAM_ATTR interrupt_disable(void)
67 {
68 portENTER_CRITICAL(&global_int_mux);
69 }
70
71 static void IRAM_ATTR interrupt_restore(void)
72 {
OK
list *0x4017fe70
&"list *0x4017fe70\n"
OK
list *0x40019edc
&"list *0x40019edc\n"
OK
list *0x4001a1f5
&"list *0x4001a1f5\n"
OK
list *0x40055fab
&"list *0x40055fab\n"
OK
list *0x4017f35d
&"list *0x4017f35d\n"
OK
list *0x40019f10
&"list *0x40019f10\n"
OK