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