diff options
Diffstat (limited to 'embassy-usb-dfu/src/bootloader.rs')
| -rw-r--r-- | embassy-usb-dfu/src/bootloader.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/embassy-usb-dfu/src/bootloader.rs b/embassy-usb-dfu/src/bootloader.rs index 215058932..99384d961 100644 --- a/embassy-usb-dfu/src/bootloader.rs +++ b/embassy-usb-dfu/src/bootloader.rs | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | use embassy_boot::BlockingFirmwareUpdater; | 1 | use embassy_boot::{AlignedBuffer, BlockingFirmwareUpdater}; |
| 2 | use embassy_usb::control::{InResponse, OutResponse, Recipient, RequestType}; | 2 | use embassy_usb::control::{InResponse, OutResponse, Recipient, RequestType}; |
| 3 | use embassy_usb::driver::Driver; | 3 | use embassy_usb::driver::Driver; |
| 4 | use embassy_usb::{Builder, Handler}; | 4 | use embassy_usb::{Builder, Handler}; |
| @@ -56,8 +56,8 @@ impl<'d, DFU: NorFlash, STATE: NorFlash, const BLOCK_SIZE: usize> Handler for Co | |||
| 56 | self.offset = 0; | 56 | self.offset = 0; |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | let mut buf = [0; BLOCK_SIZE]; | 59 | let mut buf = AlignedBuffer([0; BLOCK_SIZE]); |
| 60 | buf[..data.len()].copy_from_slice(data); | 60 | buf.as_mut()[..data.len()].copy_from_slice(data); |
| 61 | 61 | ||
| 62 | if req.length == 0 { | 62 | if req.length == 0 { |
| 63 | match self.updater.mark_updated() { | 63 | match self.updater.mark_updated() { |
| @@ -85,7 +85,7 @@ impl<'d, DFU: NorFlash, STATE: NorFlash, const BLOCK_SIZE: usize> Handler for Co | |||
| 85 | self.state = State::Error; | 85 | self.state = State::Error; |
| 86 | return Some(OutResponse::Rejected); | 86 | return Some(OutResponse::Rejected); |
| 87 | } | 87 | } |
| 88 | match self.updater.write_firmware(self.offset, &buf[..]) { | 88 | match self.updater.write_firmware(self.offset, buf.as_ref()) { |
| 89 | Ok(_) => { | 89 | Ok(_) => { |
| 90 | self.status = Status::Ok; | 90 | self.status = Status::Ok; |
| 91 | self.state = State::DlSync; | 91 | self.state = State::DlSync; |
