commit 6543741581b5c11f71b52c0fffd79547d00e1c37
parent 9b809dc90d5e27cebeeab5ab5c3b51d5e0963ad9
Author: Matsuda Kenji <info@mtkn.jp>
Date: Sat, 18 Mar 2023 10:25:00 +0900
divide pll setup and gpio setup for debugging
Diffstat:
M | main.s | | | 55 | +++++++++++++++++++++++++++++++++++-------------------- |
1 file changed, 35 insertions(+), 20 deletions(-)
diff --git a/main.s b/main.s
@@ -1,6 +1,33 @@
.section .text
.global main
main:
+ // reset gpio
+ ldr r0, resets_base
+ ldr r1, atomic_clr
+ add r0, r0, r1
+ mov r1, #0x1
+ lsl r1, r1, #5 // io_bank0
+ str r1, [r0, #0] // RESETS_RESET
+
+ // check if reset is done
+ ldr r0, resets_base
+gpio_reset_chk:
+ ldr r2, [r0, #0x8] // RESETS_RESET_DONE
+ and r1, r1, r2
+ beq gpio_reset_chk
+
+ // set gpio24 funct as sio
+ ldr r0, io_bank0_base
+ add r0, r0, #0xc4
+ mov r1, #5
+ str r1, [r0, #0]
+
+ // enable gpio output
+ ldr r0, sio_base
+ mov r1, #1
+ lsl r1, r1, #24
+ str r1, [r0, #0x24]
+
// set xosc delay
ldr r0, xosc_base
mov r1, #47
@@ -18,40 +45,28 @@ main:
str r1, [r0, #0] // XOSC_CTRL
// wait for xosc startup
- ldr r0, xosc_base
xosc_stable:
+ bl led_blink
+ ldr r0, xosc_base
ldr r1, [r0, #0x4]
lsr r1, r1, #31
beq xosc_stable
- // reset gpio and pll
+
+ // reset pll
ldr r0, resets_base
ldr r1, atomic_clr
add r0, r0, r1
- mov r2, #0x1
- lsl r1, r2, #5 // io_bank0
- lsl r2, r2, #12 // pll_sys
- add r1, r1, r2
+ mov r1, #0x1
+ lsl r1, r1, #12 // pll_sys
str r1, [r0, #0] // RESETS_RESET
// check if reset is done
ldr r0, resets_base
-reset_chk:
+pll_reset_chk:
ldr r2, [r0, #0x8] // RESETS_RESET_DONE
and r1, r1, r2
- beq reset_chk
-
- // set gpio24 funct as sio
- ldr r0, io_bank0_base
- add r0, r0, #0xc4
- mov r1, #5
- str r1, [r0, #0]
-
- // enable gpio output
- ldr r0, sio_base
- mov r1, #1
- lsl r1, r1, #24
- str r1, [r0, #0x24]
+ beq pll_reset_chk
// set feedback divider
ldr r0, pll_sys_base