commit 992a278b65c0fb2599752f09f0f95f9c5f5872f5
parent 004799eb8e0f07992acb10210fd1aa054a916d56
Author: Matsuda Kenji <info@mtkn.jp>
Date: Thu, 28 Aug 2025 09:33:03 +0900
make unreset a function
Diffstat:
2 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/ex4_shell/main.c b/ex4_shell/main.c
@@ -1,5 +1,15 @@
+enum reset_num {
+ RESET_IOBANK0 = 1 << 5,
+ RESET_PLL_SYS = 1 << 12,
+ RESET_UART0 = 1 << 22,
+};
+
+void unreset(enum reset_num);
+void mains(void);
+
void
main(void)
{
+ unreset(RESET_IOBANK0|RESET_PLL_SYS|RESET_UART0);
mains();
}
diff --git a/ex4_shell/start.s b/ex4_shell/start.s
@@ -58,12 +58,12 @@ loop:
wfe
b loop
- .global mains
-mains:
- push {lr}
-
+ // void unreset(enum reset_num subsystems);
+ // unreset unresets subsystems.
+ // subsystems is bitwise or.
+ .global unreset
+unreset:
// unreset gpio, pll_sys, uart0
- ldr r0, =(1 << 22 | 1 << 12 | 1 << 5) // uart0 | pll_sys | io_bank0
ldr r3, resets_base
ldr r1, atomic_clr
str r0, [r3, r1] // RESETS: RESET
@@ -74,6 +74,11 @@ unreset_chk:
ldr r1, [r3, #0x8] // RESETS: RESET_DONE
bic r0, r1
bne unreset_chk
+ bx lr
+
+ .global mains
+mains:
+ push {lr}
// set gpio functions
ldr r3, io_bank0_base