diff options
Diffstat (limited to 'embassy-boot/boot/src/boot_loader.rs')
| -rw-r--r-- | embassy-boot/boot/src/boot_loader.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/embassy-boot/boot/src/boot_loader.rs b/embassy-boot/boot/src/boot_loader.rs index 37fff621a..25f81009e 100644 --- a/embassy-boot/boot/src/boot_loader.rs +++ b/embassy-boot/boot/src/boot_loader.rs | |||
| @@ -56,9 +56,9 @@ trait FlashConfigEx { | |||
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | impl<T: FlashConfig> FlashConfigEx for T { | 58 | impl<T: FlashConfig> FlashConfigEx for T { |
| 59 | /// Get the page size which is the "unit of operation" within the bootloader. | ||
| 59 | fn page_size() -> usize { | 60 | fn page_size() -> usize { |
| 60 | assert_eq!(T::ACTIVE::ERASE_SIZE, T::DFU::ERASE_SIZE); | 61 | core::cmp::max(T::ACTIVE::ERASE_SIZE, T::DFU::ERASE_SIZE) |
| 61 | T::ACTIVE::ERASE_SIZE | ||
| 62 | } | 62 | } |
| 63 | } | 63 | } |
| 64 | 64 | ||
| @@ -182,6 +182,8 @@ impl BootLoader { | |||
| 182 | assert_eq!(0, P::page_size() % aligned_buf.len()); | 182 | assert_eq!(0, P::page_size() % aligned_buf.len()); |
| 183 | assert_eq!(0, P::page_size() % P::ACTIVE::WRITE_SIZE); | 183 | assert_eq!(0, P::page_size() % P::ACTIVE::WRITE_SIZE); |
| 184 | assert_eq!(0, P::page_size() % P::DFU::WRITE_SIZE); | 184 | assert_eq!(0, P::page_size() % P::DFU::WRITE_SIZE); |
| 185 | assert_eq!(0, P::page_size() % P::ACTIVE::ERASE_SIZE); | ||
| 186 | assert_eq!(0, P::page_size() % P::DFU::ERASE_SIZE); | ||
| 185 | assert!(aligned_buf.len() >= P::STATE::WRITE_SIZE); | 187 | assert!(aligned_buf.len() >= P::STATE::WRITE_SIZE); |
| 186 | assert_partitions(self.active, self.dfu, self.state, P::page_size(), P::STATE::WRITE_SIZE); | 188 | assert_partitions(self.active, self.dfu, self.state, P::page_size(), P::STATE::WRITE_SIZE); |
| 187 | 189 | ||
