EmbDev.net

Forum: µC & Digital Electronics ESP32: 'Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled' caused


von Dennis M. (colmear)


Rate this post
useful
not useful
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.
1
if (pRemoteCharacteristic->canNotify()) {
2
  Serial.println("Setting up notify");
3
  pRemoteCharacteristic->registerForNotify(notifyCallback);
4
}
I always get the following error message:
1
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
2
Core 1 register dump:
3
PC      : 0x400d495f  PS      : 0x00060330  A0      : 0x800d4154      A1      : 0x3ffca250
4
A2      : 0x00000000  A3      : 0x3ffca29e  A4      : 0x00000002      A5      : 0x00000000
5
A6      : 0x3ffe1ac8  A7      : 0x3f01a2e0  A8      : 0x800d3e4c      A9      : 0x3ffca200
6
A10     : 0x3ffca24c  A11     : 0xaab8b50c  A12     : 0x3ffc60e4      A13     : 0xaab8b50c
7
A14     : 0x3ffca200  A15     : 0xff000000  SAR     : 0x00000008      EXCCAUSE: 0x0000001c
8
EXCVADDR: 0x00000030  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6      LCOUNT  : 0x00000000
9
10
Backtrace: 0x400d495f:0x3ffca250 0x400d4151:0x3ffca280 0x400d1ba5:0x3ffca2e0 0x400d1c42:0x3ffca350 0x400d86bd:0x3ffca390 0x40090461:0x3ffca3b0

Does anyone know how to avoid this error?

Thanks in advance,
Dennis

von stefanus (Guest)


Rate this post
useful
not useful
That means, the program crashed somewhere.

The "Guru Meditation Error" is a joke, referring to Commodore Amiga 
computers.

von Dennis M. (colmear)


Rate this post
useful
not useful
stefanus wrote:
> That means, the program crashed somewhere.

I know that the program crashes during registerForNotify(), so if I 
comment this line, the program works as expected, just without 
notifying.

von Andreas B. (andreasb)


Rate this post
useful
not useful
See here:
https://github.com/espressif/arduino-esp32/issues/602

Quote:
> It looks to me that your call back address is invalid. The Function
> Address you passed when you registered your subscribe function is not
> correct. Verify you passed the correct function.
>
>This is just a guess because you did not post any code.


Is notifyCallback a function or a pointer?


Andreas

von Dennis M. (colmear)


Rate this post
useful
not useful
notifyCallback should be a function.
1
static void notifyCallback(
2
  BLERemoteCharacteristic* pBLERemoteCharacteristic,
3
  uint8_t* pData,
4
  size_t length,
5
  bool isNotify) {
6
    Serial.println("got notified");
7
8
    Serial.print("Notify callback for characteristic ");
9
    Serial.print(pBLERemoteCharacteristic->getUUID().toString().c_str());
10
    Serial.print(" of data length ");
11
    Serial.println(length);
12
    Serial.print("data: ");
13
    Serial.println((char*)pData);
14
}

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.