From c727cb192148018ebbad7d4cf6072ed8d441538c Mon Sep 17 00:00:00 2001 From: "Jean-Philippe (JP) Cornil" Date: Mon, 8 Apr 2024 19:22:35 +0200 Subject: [PATCH] Expose MCUSR register to applications using GPIOR0 This allows application to handle reset reasons, e.g. watchdog, reset button, ... --- bootloaders/caterina/Caterina.c | 10 ++++++---- bootloaders/caterina/Caterina.h | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/bootloaders/caterina/Caterina.c b/bootloaders/caterina/Caterina.c index 9860b3a3f..55dd912c7 100644 --- a/bootloaders/caterina/Caterina.c +++ b/bootloaders/caterina/Caterina.c @@ -68,7 +68,7 @@ uint16_t Timeout = 0; uint16_t bootKey = 0x7777; volatile uint16_t *const bootKeyPtr = (volatile uint16_t *)0x0800; -void StartSketch(void) +void StartSketch(uint8_t mcusr_state) { cli(); @@ -86,6 +86,8 @@ void StartSketch(void) TX_LED_OFF(); RX_LED_OFF(); + GPIOR0 = mcusr_state; + /* jump to beginning of application space */ __asm__ volatile("jmp 0x0000"); } @@ -126,10 +128,10 @@ int main(void) } else if ((mcusr_state & (1<