Open aeonSolutions opened 1 year ago
Hi everyone, I'm getting the following firmware crash when sending a char string over BLE to my ESP32 S3 device. I'm using Arduino Studio 2.1 and esptool 4.5.1
Guru Meditation Error: Core 0 panic'ed (Unhandled debug exception). Debug exception reason: Stack canary watchpoint triggered (BTC_TASK) Core 0 register dump: PC : 0x4037974f PS : 0x00060636 A0 : 0x00060630 A1 : 0x3fcecdd0 A2 : 0x00000000 A3 : 0x00002000 A4 : 0x0000a000 A5 : 0x00002000 A6 : 0x00000075 A7 : 0xff000000 A8 : 0x20000000 A9 : 0x00000000 A10 : 0x0000001c A11 : 0xa0000000 A12 : 0x90000000 A13 : 0x00010000 A14 : 0x00000056 A15 : 0x00000054 SAR : 0x00000004 EXCCAUSE: 0x00000001 EXCVADDR: 0x00000000 LBEG : 0x400556d5 LEND : 0x400556e5 LCOUNT : 0xffffffff Backtrace:0x4037974c:0x3fcecdd00x0006062d:0x3fceceb0 |<-CORRUPTED
Bellow is the Class callbacks I'm using to handle BLE messages
class MyServerCallbacks: public BLEServerCallbacks { void onConnect(BLEServer* pServer) { interface->BLE_IS_DEVICE_CONNECTED = true; deviceDisconnected_BLE_callback=false; interface->onBoardLED->led[0] = interface->onBoardLED->LED_BLUE; interface->onBoardLED->statusLED(100, 1); }; void onDisconnect(BLEServer* pServer) { interface->BLE_IS_DEVICE_CONNECTED = false; interface->onBoardLED->led[0] = interface->onBoardLED->LED_BLUE; interface->onBoardLED->statusLED(100, 0.5); interface->onBoardLED->led[0] = interface->onBoardLED->LED_RED; interface->onBoardLED->statusLED(100, 0.5); interface->onBoardLED->led[0] = interface->onBoardLED->LED_BLUE; interface->onBoardLED->statusLED(100, 0.5); pServer->getAdvertising()->start(); } }; class pCharacteristicTX_Callbacks: public BLECharacteristicCallbacks { void onWrite(BLECharacteristic *pCharacteristic) { std::string rxValue = pCharacteristic->getValue(); if (rxValue.length() > 0) { String msg=""; mserial->printStrln("*********"); mserial->printStr("Received Value: "); for (int i = 0; i < rxValue.length(); i++) { msg=msg+String(rxValue[i]); mserial->printStr(String(rxValue[i])); } mserial->printStrln(""); mserial->printStrln("*********"); //valueReceived=msg; } } void onRead(BLECharacteristic *pCharacteristic) { mserial->printStrln("*********"); mserial->printStr("onRead..."); pCharacteristic->setValue("OK"); } }; class pCharacteristicRX_Callbacks: public BLECharacteristicCallbacks { void onWrite(BLECharacteristic *pCharacteristic) { std::string rxValue = pCharacteristic->getValue(); mserial->ble=false; if (rxValue.length() > 0) { String msg=""; mserial->printStr("Received Value: "); for (int i = 0; i < rxValue.length(); i++) { msg=msg+String(rxValue[i]); mserial->printStr(String(rxValue[i])); } msg.trim(); $BLE_CMD=msg; mserial->ble=true; newCMDarrived=true; } } void onRead(BLECharacteristic *pCharacteristic) { mserial->printStrln("*********"); mserial->printStr("onRead..."); pCharacteristic->setValue("OK"); } }; //------------------------------------------------------------------
Same issue, happens only in some cases, not on all setValue calls
Hi everyone, I'm getting the following firmware crash when sending a char string over BLE to my ESP32 S3 device. I'm using Arduino Studio 2.1 and esptool 4.5.1
Bellow is the Class callbacks I'm using to handle BLE messages