diff options
| -rw-r--r-- | tmk_core/common/chibios/bootloader.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tmk_core/common/chibios/bootloader.c b/tmk_core/common/chibios/bootloader.c index 76d52ea60..f9514ee5f 100644 --- a/tmk_core/common/chibios/bootloader.c +++ b/tmk_core/common/chibios/bootloader.c | |||
| @@ -103,7 +103,8 @@ void enter_bootloader_mode_if_requested(void) { | |||
| 103 | # define SCB_AIRCR_VECTKEY_WRITEMAGIC 0x05FA0000 | 103 | # define SCB_AIRCR_VECTKEY_WRITEMAGIC 0x05FA0000 |
| 104 | const uint8_t sys_reset_to_loader_magic[] = "\xff\x00\x7fRESET TO LOADER\x7f\x00\xff"; | 104 | const uint8_t sys_reset_to_loader_magic[] = "\xff\x00\x7fRESET TO LOADER\x7f\x00\xff"; |
| 105 | __attribute__((weak)) void bootloader_jump(void) { | 105 | __attribute__((weak)) void bootloader_jump(void) { |
| 106 | __builtin_memcpy((void *)VBAT, (const void *)sys_reset_to_loader_magic, sizeof(sys_reset_to_loader_magic)); | 106 | void *volatile vbat = (void *)VBAT; |
| 107 | __builtin_memcpy(vbat, (const void *)sys_reset_to_loader_magic, sizeof(sys_reset_to_loader_magic)); | ||
| 107 | // request reset | 108 | // request reset |
| 108 | SCB->AIRCR = SCB_AIRCR_VECTKEY_WRITEMAGIC | SCB_AIRCR_SYSRESETREQ_Msk; | 109 | SCB->AIRCR = SCB_AIRCR_VECTKEY_WRITEMAGIC | SCB_AIRCR_SYSRESETREQ_Msk; |
| 109 | } | 110 | } |
