From 79174f2d1c154f0ac26c80e56ce9ac49125b6553 Mon Sep 17 00:00:00 2001 From: C-Glick <colton.glick@gmail.com> Date: Thu, 10 Feb 2022 19:10:01 -0600 Subject: [PATCH] Changed bootloader state address, now works --- .../src/modules/src/bootloader.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/bootloader.c b/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/bootloader.c index 233ca2c54..eb5fdfb26 100644 --- a/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/bootloader.c +++ b/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/bootloader.c @@ -2,11 +2,10 @@ //bootloader code used from micropython machine_bootloader -// Location in RAM of bootloader state (just after the top of the stack). // STM32H7 has ECC and writes to RAM must be 64-bit so they are fully committed // to actual SRAM before a system reset occurs. -#define BL_STATE_PTR ((uint64_t *)&_estack) -#define BL_STATE_KEY (0x5a5) //arbitrary bit pattern used as marker +#define BL_STATE_PTR ((uint64_t *) SRAM2_BASE) //start of 16kb SRAM bank in stm32f405 +#define BL_STATE_KEY (0x5a5) //arbitrary bit pattern used as a marker #define BL_STATE_KEY_MASK (0xfff) #define BL_STATE_KEY_SHIFT (32) #define BL_STATE_INVALID (0) @@ -14,7 +13,6 @@ #define BL_STATE_GET_REG(s) ((s) & 0xffffffff) #define BL_STATE_GET_KEY(s) (((s) >> BL_STATE_KEY_SHIFT) & BL_STATE_KEY_MASK) #define BL_STATE_GET_ADDR(s) (((s) >> BL_STATE_KEY_SHIFT) & ~BL_STATE_KEY_MASK) -extern uint64_t _estack[]; void branch_to_bootloader(uint32_t r0, uint32_t bl_addr){ @@ -47,6 +45,6 @@ void check_enter_bootloader(){ void enter_bootloader(uint32_t r0, uint32_t bl_addr){ //set bootloader state values *BL_STATE_PTR = BL_STATE_VALID(r0, bl_addr); - + NVIC_SystemReset(); } \ No newline at end of file -- GitLab