diff --git a/memory.x b/memory.x index 4d61b10..c4751ec 100644 --- a/memory.x +++ b/memory.x @@ -11,7 +11,7 @@ MEMORY CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K } -_stack_start = ORIGIN(CCMRAM) + LENGTH(CCMRAM); -_dfu_msg = ORIGIN(DFU_MSG); -_config_start = ORIGIN(CONFIG); _flash_start = ORIGIN(FLASH); +_config_start = ORIGIN(CONFIG); +_dfu_msg = ORIGIN(DFU_MSG); +_stack_start = ORIGIN(CCMRAM) + LENGTH(CCMRAM); diff --git a/src/flash_store.rs b/src/flash_store.rs index 92dcc91..ef9f651 100644 --- a/src/flash_store.rs +++ b/src/flash_store.rs @@ -20,17 +20,17 @@ pub struct FlashBackend { flash: FLASH, } -unsafe fn get_offset() -> usize { - (&_config_start as *const usize as usize) - (&_flash_start as *const usize as usize) +fn get_offset() -> usize { + unsafe { + (&_config_start as *const usize as usize) - (&_flash_start as *const usize as usize) + } } impl StoreBackend for FlashBackend { type Data = [u8]; fn data(&self) -> &Self::Data { - unsafe { - &self.flash.read()[get_offset()..(get_offset() + FLASH_SECTOR_SIZE)] - } + &self.flash.read()[get_offset()..(get_offset() + FLASH_SECTOR_SIZE)] } type Error = Error; @@ -40,10 +40,8 @@ impl StoreBackend for FlashBackend { } fn program(&mut self, offset: usize, payload: &[u8]) -> Result<(), Self::Error> { - unsafe { - self.flash.unlocked() - .program(get_offset() + offset, payload.iter().cloned()) - } + self.flash.unlocked() + .program(get_offset() + offset, payload.iter().cloned()) } fn backup_space(&self) -> &'static mut [u8] {