JSC-electronics / Adeon

C++ library for processing commands from Adeon android mobile app.
Apache License 2.0
0 stars 0 forks source link

Adeon causes crash after receiving SMS #9

Open vzahradnik opened 3 years ago

vzahradnik commented 3 years ago

Example: SIMComGSM

When I tried the example for the first few times, everything worked. But after the module received more messages, it started crashing every time a new message arrived. I think the responsible code for the crash is in Adeon.

I "solved" the problem by removing all messages from the module. However, this solution just confirmed what's the problem. We need to find a fix.

vzahradnik commented 3 years ago

It looks like this problem may not happen everytime. While I was testing, Adeon was not deleting the message. However, we should handle such a scenario, and not crash.

vzahradnik commented 3 years ago

Now I also get crash after initialization of Adeon. Here's the dump:

*********************
LIST ITEM ID: 421918582460
LIST ITEM VALUE: 1

*********************
Guru Meditation Error: Core  1 panic'ed (StoreProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x400db4a3  PS      : 0x00060530  A0      : 0x800db4b8  A1      : 0x3ffb1ea0  
A2      : 0x3ffba588  A3      : 0x3f4016ca  A4      : 0x00000001  A5      : 0x400d5974  
A6      : 0x3ffb8d70  A7      : 0xff000000  A8      : 0x800db4a3  A9      : 0x3ffb1e80  
A10     : 0x00000000  A11     : 0x3f4016ca  A12     : 0x00000001  A13     : 0x0000000f  
A14     : 0x00000000  A15     : 0xff000000  SAR     : 0x00000010  EXCCAUSE: 0x0000001d  
EXCVADDR: 0x00000008  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xfffffffb  

Backtrace: 0x400db4a3:0x3ffb1ea0 0x400db4b5:0x3ffb1ec0 0x400d3b01:0x3ffb1ee0 0x400d54e9:0x3ffb1f20 0x400d2f39:0x3ffb1f60 0x400d23ea:0x3ffb1f90 0x400df2cb:0x3ffb1fb0 0x400890f9:0x3ffb1fd0

Rebooting...
ets Jul 29 2019 12:21:46
vzahradnik commented 3 years ago

The crash above is due to the following code:

adeon.addParamWithCallback(changeGuardStateCommandReceived, ADEON_COMMAND_GUARD, storeManager.getGuardState());
adeon.addParamWithCallback(changeBreakerStateCommandRcvd, ADEON_COMMAND_CIRCUIT_BREAKER, storeManager.getCircuitBreakerState());

I am trying to register two callbacks. I don't know yet, where is the problem, but it is Adeon-related. My functions don't cause the crash. I checked.