summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/stm32/main.c4
-rw-r--r--ports/stm32/resethandler.s6
2 files changed, 7 insertions, 3 deletions
diff --git a/ports/stm32/main.c b/ports/stm32/main.c
index ccf490e36..4b5997227 100644
--- a/ports/stm32/main.c
+++ b/ports/stm32/main.c
@@ -413,7 +413,7 @@ STATIC uint update_reset_mode(uint reset_mode) {
return reset_mode;
}
-int main(void) {
+void stm32_main(uint32_t reset_mode) {
// TODO disable JTAG
/* STM32F4xx HAL library initialization:
@@ -488,7 +488,7 @@ soft_reset:
#endif
led_state(3, 0);
led_state(4, 0);
- uint reset_mode = update_reset_mode(1);
+ reset_mode = update_reset_mode(1);
// Python threading init
#if MICROPY_PY_THREAD
diff --git a/ports/stm32/resethandler.s b/ports/stm32/resethandler.s
index 6c37260dc..7f0973346 100644
--- a/ports/stm32/resethandler.s
+++ b/ports/stm32/resethandler.s
@@ -33,6 +33,9 @@
.type Reset_Handler, %function
Reset_Handler:
+ /* Save the first argument to pass through to stm32_main */
+ mov r4, r0
+
/* Load the stack pointer */
ldr sp, =_estack
@@ -61,6 +64,7 @@ Reset_Handler:
/* Initialise the system and jump to the main code */
bl SystemInit
- b main
+ mov r0, r4
+ b stm32_main
.size Reset_Handler, .-Reset_Handler