-
Notifications
You must be signed in to change notification settings - Fork 244
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement reset() and halt() functions #613
Conversation
Unfortunately, I'm yet to find a good way to reset the rp2040 without losing the debug connection. The current implementation, which just stops core1 an then calls However, any attempt to also reset the SIO (which hosts the spinlocks) also breaks the debug connection. I tend to drop the requirement that the debug connection should stay alive, and instead just trigger a full watchdog reset. Any opinions? |
For now, I settled on just doing a full reset, even if it breaks the debug connection. I consider a reliable reset more important than the ability to debug through a reset sequence. |
Neotron Pico BIOS uses scratchpad registers to detect a core0 reset and forces a SoC reset with the watchdog. probe-rs gets kicked out, but the workaround I found is to flash it from within the USB bootloader - none of my hardware is configured, and so my crowbar routine is neither triggered nor required. |
That's a nice solution, but I don't think it's suitable for the HAL: The firmware might need the scratchpad registers for some other purpose. Also, what this PR implements is mainly what you do in |
rebase on 674 I guess? |
Possible implementation of #564