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