From 6a3b949530f7c3c39b162e9960d26a26a2a5ca0f Mon Sep 17 00:00:00 2001 From: kicer Date: Wed, 17 Dec 2025 15:17:51 +0800 Subject: [PATCH] restore SP when exit --- bsp/init0.c | 12 ++++++++---- src/main.c | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/bsp/init0.c b/bsp/init0.c index ae24f72..8809a46 100644 --- a/bsp/init0.c +++ b/bsp/init0.c @@ -1,15 +1,17 @@ -/* Exec after reset */ +#include + +#ifdef ENABLE_OPTION_BOOTLOADER void bootloader_enter(void) __trap __naked { + /* Exec after reset */ __asm - // ldw X, #0x03FF - // ldw SP, X + ldw Y, SP ; [90 96] ldw X, #0x483F ; [AE 48 3F] _cycle: decw X ; [5A] push A ; [88] ld A, (X) ; [F6] jrne _cycle ; [26 FB] - // check + // check address ldw X, SP ; [96] addw X, #3 ; [1C 00 03] cpw X, (1,SP) ; [13 01] @@ -17,6 +19,8 @@ __asm // jump to ram ret ; [81] _exit: + ldw SP,Y ; [90 94] jp 0x8004 ; [cc 80 04] __endasm; } +#endif /* ENABLE_OPTION_BOOTLOADER */ diff --git a/src/main.c b/src/main.c index bdf88a3..10c162a 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,7 @@ #include #include #include +#include #define LED_PIN 5