aboutsummaryrefslogtreecommitdiff
path: root/embassy-usb-dfu/src/dfu.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-usb-dfu/src/dfu.rs')
-rw-r--r--embassy-usb-dfu/src/dfu.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/embassy-usb-dfu/src/dfu.rs b/embassy-usb-dfu/src/dfu.rs
index 9a2f125fb..3a390a37a 100644
--- a/embassy-usb-dfu/src/dfu.rs
+++ b/embassy-usb-dfu/src/dfu.rs
@@ -182,7 +182,7 @@ impl<'d, DFU: NorFlash, STATE: NorFlash, RST: Reset, const BLOCK_SIZE: usize> Ha
182 Ok(Request::GetStatus) => { 182 Ok(Request::GetStatus) => {
183 match self.state { 183 match self.state {
184 State::DlSync => self.state = State::Download, 184 State::DlSync => self.state = State::Download,
185 State::ManifestSync => self.reset.sys_reset(), 185 State::ManifestSync => self.state = State::ManifestWaitReset,
186 _ => {} 186 _ => {}
187 } 187 }
188 188
@@ -201,6 +201,12 @@ impl<'d, DFU: NorFlash, STATE: NorFlash, RST: Reset, const BLOCK_SIZE: usize> Ha
201 _ => None, 201 _ => None,
202 } 202 }
203 } 203 }
204
205 fn reset(&mut self) {
206 if matches!(self.state, State::ManifestSync | State::ManifestWaitReset) {
207 self.reset.sys_reset()
208 }
209 }
204} 210}
205 211
206/// An implementation of the USB DFU 1.1 protocol 212/// An implementation of the USB DFU 1.1 protocol