Hi,
version 7.10.1 on MicroPython v1.14-457-g3bf6c7f12-dirty on 2021-04-28; PYBD-SF6W with STM32F767IIK
(from master https://github.com/lvgl/lv_micropython
) after a soft reset (CTRL-D) makes the device restart.
Any previous evidence or is it a new problem?
this is the main:
if __name__ == '__main__':
log.debug("Press any kay to continue ...")
input()
try:
log.debug("lv.init() PRE")
lv.init()
log.debug("lv.init() POST ")
asyncio.run(main())
except KeyboardInterrupt:
log.debug('exiting ...')
finally:
asyncio.new_event_loop()
lv.deinit()
It’s possible that there’s an issue with the bindings somewhere, as I know soft reboots have caused problems on STM32 for me before. I will test it again. In the meantime I would suggest using the normal full reset mechanism if possible. For STM32, it isn’t that much slower than soft reset.
Could this be related to calling lv_init()
while the program is running and a screen is alive?
In case of soft reset this could also happen when there are active animations or tasks - that would surely cause some crash. Another thing that should be stopped is lvstm32 timer.
I guess that spontaneously calling lv_init()
in the middle does not usually happen on C programs.
If this is the problem, we should have some C callback called when soft reset is performed that would clean up everything including tasks, animations, lvstm32 timer, etc.
I don’t think lv.deinit() is taking care of any of that: