Is there any way anyone has found to reset the M4 core from the Linux side of this board?
I am using it for a project and occasionally the M4 core will seem to hang somewhere it shouldn't and it doesn't recover naturally. Of course, my sketch on the M4 core is to blame, but it makes me think that I should set up something like a provisional watchdog timer on the Linux side to ensure that the M4 core is indeed running, and reset it if it faults and fails to recover.
So far, I don't see anything in the Arduino docs regarding this specifically, albeit I do see a few temporarily viable, less precise options:
-
Reflash the M4 Core, manually via the tools used in the
monitor-m4-elf-file.service
service, or by dropping an.elf
file of the compiled sketch to the/tmp/arduino
directory, and causing undue stress to the flash memory if this operation becomes frequent -
Reboot the board, incurring quite a bit of downtime waiting for the OS to come back up
I have seen some slightly more promising things in the NXP I.MX8 forums, but the OP ended up getting sent some patch for their specific board. If I get more desperate, I might try to see if there are some registers on either MCU that I can play with that will give me what I want.