I have an application based on D2000. its functionality is very simple: after this device is powered up, it triggers the sensor and this sensor sends information about its measurment via UART. After that the D2000 board falls asleep for 5s. In the next step wakes up, makes measurment and falls asleep again etc.
And all should be great but there are two problems:
1) From time to time the device hangs up - due to my observation happens after waking up (it prints the first letter of the log on terminal and hangs up)
2) From time to time D2000 reboots itself without any reason.
Finally the effect is that the device works properly for exaple 259 or 6320 or 56 seconds, it falls asleep, wakes up, prints the first letter (on terminal) of the log text and it hangs up.
In the ISSM console I have info like this:
Program received signal SIGINT, Interrupt.
0x9107fe8a in ?? ()
In debug tab of ISSM env I found a couple times (when it was hanged) information that it is in "qm_uart_write_buffer" or "qm_uart_write" function.
It looks like it receives a random interrupt (but I do not know how and from where cause the sensor is not connected) interrupt from UART and it stays in the interrupt.
Does anybody have any idea what is going on or maybe some of you had some similary problem?
I check it and I'm not using print inside callback. I'll check it again to be sure on 100%. Maybe I should apply hal_waitUntil(); function at the end of soc_sleep() ?
Issue would appear to have been resolved by updating the D2000 ROM to the latest version available on https://github.com/quark-mcu/qmsi/releases Releases · quark-mcu/qmsi · GitHub
If there are any further issues seen please let us know.