NimBLE-Arduino crashes with esp32 version 3.0.1. and a LilyGo T-display S3
Berg0162 opened this issue · 4 comments
Board: LilyGo T-display S3 --> Board manager setting: "ESP32S3 Dev Module" with the right Tools settings
Arduino IDE version: 2.3.2; CLI Version: 0.35.3
Arduino-ESP32 version: 2.0.17 and previous
--> All my code compiles without problems and works fine with NimBLE-Arduino (version 1.4.1) !!
After installing: Arduino-ESP32 version 3.0.1 my code crashes when pAdvertising->start();
is called...
Checked with examples/NimBLE_Server.ino
and your NimBLE-Server example crashes at pAdvertising->start();
NimBLEAdvertising* pAdvertising = NimBLEDevice::getAdvertising();
/** Add the services to the advertisment data **/
pAdvertising->addServiceUUID(pDeadService->getUUID());
pAdvertising->addServiceUUID(pBaadService->getUUID());
/** If your device is battery powered you may consider setting scan response
* to false as it will extend battery life at the expense of less data sent.
*/
pAdvertising->setScanResponse(true);
pAdvertising->start();
Serial.println("Advertising Started");
09:25:43.471 -> Saved PC:0x4037770d
09:25:43.471 -> SPIWP:0xee
09:25:43.471 -> mode:DIO, clock div:1
09:25:43.471 -> load:0x3fce3818,len:0x508
09:25:43.471 -> load:0x403c9700,len:0x4
09:25:43.471 -> load:0x403c9704,len:0xad0
09:25:43.471 -> load:0x403cc700,len:0x29e4
09:25:43.471 -> entry 0x403c9880
09:25:43.610 -> Starting NimBLE Server
09:25:43.737 -> Guru Meditation Error: Core 0 panic'ed (Unhandled debug exception).
09:25:43.737 -> Debug exception reason: Stack canary watchpoint triggered (ipc0)
09:25:43.737 -> Core 0 register dump:
09:25:43.737 -> PC : 0x40383952 PS : 0x00060036 A0 : 0x80381f58 A1 : 0x3fcf0980
09:25:43.737 -> A2 : 0x3fc98820 A3 : 0xffffffff A4 : 0x00060023 A5 : 0x00060023
09:25:43.737 -> A6 : 0xb33fffff A7 : 0xb33fffff A8 : 0x80383ae5 A9 : 0x3fc9a0d0
09:25:43.737 -> A10 : 0x00060023 A11 : 0x00000001 A12 : 0x00060021 A13 : 0x00000001
09:25:43.737 -> A14 : 0x03c98758 A15 : 0x3fc98758 SAR : 0x00000004 EXCCAUSE: 0x00000001
09:25:43.737 -> EXCVADDR: 0x00000000 LBEG : 0x40056f5c LEND : 0x40056f72 LCOUNT : 0xffffffff
09:25:43.737 ->
09:25:43.737 ->
09:25:43.737 -> Backtrace: 0x4038394f:0x3fcf0980 0x40381f55:0x3fcf09b0 0x40383cdc:0x3fcf09e0 0x40383cd2:0xa5a5a5a5 |<-CORRUPTED
Checked (esp32 3.0.1) with a different board: Adafruit Feather esp32 V2 --> NO crash --> your NimBLE-Server example works fine !!
I have tested (the ESP32S3 Dev Module) with your examples/NimBLE_Client.ino
and when pScan->start(scanTime, scanEndedCB);
is called the code crashes
/** Active scan will gather scan response data from advertisers
* but will use more energy from both devices
*/
pScan->setActiveScan(true);
/** Start scanning for advertisers for the scan time specified (in seconds) 0 = forever
* Optional callback for when scanning stops.
*/
pScan->start(scanTime, scanEndedCB);
}
10:43:50.729 -> Rebooting...
10:43:50.729 -> ESP-ROM:esp32s3-20210327
10:43:50.729 -> Build:Mar 27 2021
10:43:50.764 -> rst:0xc (RTC_SW_CPU_RST),boot:0x2b (SPI_FAST_FLASH_BOOT)
10:43:50.764 -> Saved PC:0x4037770d
10:43:50.764 -> SPIWP:0xee
10:43:50.764 -> mode:DIO, clock div:1
10:43:50.764 -> load:0x3fce3818,len:0x508
10:43:50.764 -> load:0x403c9700,len:0x4
10:43:50.764 -> load:0x403c9704,len:0xad0
10:43:50.764 -> load:0x403cc700,len:0x29e4
10:43:50.764 -> entry 0x403c9880
10:43:50.903 -> Starting NimBLE Client
10:43:51.019 -> Guru Meditation Error: Core 0 panic'ed (Unhandled debug exception).
10:43:51.019 -> Debug exception reason: Stack canary watchpoint triggered (ipc0)
10:43:51.019 -> Core 0 register dump:
10:43:51.019 -> PC : 0x4038398e PS : 0x00060036 A0 : 0x80381f58 A1 : 0x3fcf0980
10:43:51.019 -> A2 : 0x3fc98818 A3 : 0xffffffff A4 : 0x00060023 A5 : 0x00060023
10:43:51.019 -> A6 : 0xb33fffff A7 : 0xb33fffff A8 : 0x80383b21 A9 : 0x3fc9a0d0
10:43:51.019 -> A10 : 0x00060023 A11 : 0x00000001 A12 : 0x00060021 A13 : 0x00000001
10:43:51.019 -> A14 : 0x03c98750 A15 : 0x3fc98750 SAR : 0x00000004 EXCCAUSE: 0x00000001
10:43:51.019 -> EXCVADDR: 0x00000000 LBEG : 0x40056f5c LEND : 0x40056f72 LCOUNT : 0xffffffff
10:43:51.019 ->
10:43:51.019 ->
10:43:51.019 -> Backtrace: 0x4038398b:0x3fcf0980 0x40381f55:0x3fcf09b0 0x40383d18:0x3fcf09e0 0x40383d0e:0xa5a5a5a5 |<-CORRUPTED
I would very much appreciate when you have a look into this problem with esp 3.0.1. It would not be the first time that our friends with espressif spoil the party with changes....
Please use the latest commit from the release/1.4 branch as it contains the fix already. I'll make a new release shortly.
Thank you so much! I will keep esp32 to version 2.0.17 until the new NimBLE-Arduino version is released. Release esp32 3.0.0 turned out to crash the TFT_eSPI library as well... One surprise after the other!
Closing this as 1.4.2 has been released with the fix.