How to fix 'Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled' caused by registerForNotify()

1

I am trying to connect two ESP32 via Bluetooth, while one is serving as the server and one as a client. Connecting the client to the server works just fine and discovering the characteristic works too. But when I try to register the characteristic for notify, I get an error message.

The rest of my code seems to work just fine, because if I don't register the characteristic for notifying, I don't have any problems.

if (pRemoteCharacteristic->canNotify()) {
  Serial.println("Setting up notify");
  pRemoteCharacteristic->registerForNotify(notifyCallback);
}

I always get the following error message:

Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x400d495f  PS      : 0x00060330  A0      : 0x800d4154      A1      : 0x3ffca250
A2      : 0x00000000  A3      : 0x3ffca29e  A4      : 0x00000002      A5      : 0x00000000
A6      : 0x3ffe1ac8  A7      : 0x3f01a2e0  A8      : 0x800d3e4c      A9      : 0x3ffca200
A10     : 0x3ffca24c  A11     : 0xaab8b50c  A12     : 0x3ffc60e4      A13     : 0xaab8b50c
A14     : 0x3ffca200  A15     : 0xff000000  SAR     : 0x00000008      EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000030  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6      LCOUNT  : 0x00000000

Backtrace: 0x400d495f:0x3ffca250 0x400d4151:0x3ffca280 0x400d1ba5:0x3ffca2e0 0x400d1c42:0x3ffca350 0x400d86bd:0x3ffca390 0x40090461:0x3ffca3b0
esp32
arduino-c++
asked on Stack Overflow Sep 26, 2019 by DeMo

1 Answer

2

The BLE implementation uses in some parts string (small s) functions and uses this methods like

msg += ab.toString();

to append them.

On Avr microcontrollers this leads to heap fragmentation, causing unexpected results like crash.The notification (look in the corresponding BLERemoteCharacteristic.h and cpp file) builds messages this way. (version till 1.0.4 at point of writing the latest aval.) Refer this issue to the github repo as a possible bug.

answered on Stack Overflow Feb 27, 2020 by Codebreaker007

User contributions licensed under CC BY-SA 3.0