Expand description
DMA software reset state machine.
Wraps the DMABUSMODE.SWR bit-poll loop in a small struct that takes
a DelayNs implementation. Note that
embedded_hal::delay::DelayNs is a blocking delay trait — the
poll loop will busy-wait the calling task until the controller
self-clears or the timeout expires. Callers from async contexts
should either accept that block (the reset finishes in a few
microseconds on real hardware) or pass a DelayNs implementation
whose delay_us yields to the executor.
For a true async variant — using embedded_hal_async::delay::DelayNs
so each poll-step .awaits and yields control back to the executor —
enable the async cargo feature and use
crate::reset::async_impl::AsyncResetController, defined in the
cfg-gated async_impl submodule.
Modules§
- async_
impl - Async-flavoured variant of
super::ResetController.
Structs§
- Reset
Controller - Owns a
DelayNsimplementation and exposes the soft-reset routine.
Enums§
- Reset
Error - Reset failure cause.
Constants§
- RESET_
POLL_ INTERVAL_ US - Polling interval while waiting for
DMABUSMODE.SWRto self-clear. - SOFT_
RESET_ TIMEOUT_ MS - Default soft-reset timeout (matches ESP-IDF / ph-esp32-mac).