commit c3565a1440c02ce651b2777620a691f3c45f87ac
parent b84291ba5f64e2f91580e2548163ef91ea898ea5
Author: Matsuda Kenji <info@mtkn.jp>
Date: Mon, 20 Mar 2023 09:19:41 +0900
add led for debugging
Diffstat:
M | main.s | | | 42 | ++++++++++++++++++++++++++++++------------ |
1 file changed, 30 insertions(+), 12 deletions(-)
diff --git a/main.s b/main.s
@@ -11,14 +11,16 @@ main:
// set gpio24 funct as sio
ldr r0, io_bank0_base
- add r0, r0, #0xc4
mov r1, #5
+ add r0, r0, #0xb4 // io_bank0_gpio22_ctrl
+ str r1, [r0, #0]
+ add r0, r0, #0x10 // io_bank0_gpio24_ctrl
str r1, [r0, #0]
// enable gpio output
ldr r0, sio_base
- mov r1, #1
- lsl r1, r1, #24
+ mov r1, #5
+ lsl r1, r1, #22 // gpio22 and gpio24
str r1, [r0, #0x24]
// enable xosc
@@ -84,7 +86,8 @@ pll_lock:
str r1, [r0, #0x3c] // CLOCKS_CLK_SYS_CTRL
loop:
- bl led_blink
+ bl p0
+ bl p1
b loop
// functions
@@ -92,6 +95,7 @@ loop:
unreset:
// unreset subsystems specified by r0
// args: bit mask to specify the subsystems to unreset
+ // return: the bit mask same as the arg
ldr r1, resets_base
ldr r2, atomic_clr
add r1, r1, r2
@@ -100,6 +104,8 @@ unreset:
wait_unreset:
// wait for subsystems specified by r0 to reset done
+ // args: bit mask to specify the subsystems to wait for
+ // return: void
ldr r1, resets_base
reset_chk:
ldr r2, [r1, #0x8] // RESETS_RESET_DONE
@@ -107,17 +113,29 @@ reset_chk:
beq reset_chk
bx lr
+p0:
+ // blink led on gpio24
+ push {lr}
+ mov r0, #1
+ lsl r0, r0, #24
+ bl led_blink
+ pop {pc}
+
+p1:
+ // blink led on gpio22
+ push {lr}
+ mov r0, #1
+ lsl r0, r0, #22
+ bl led_blink
+ pop {pc}
+
led_blink:
push {lr}
- ldr r0, sio_base
- mov r1, #1
- lsl r1, r1, #24
- mov r3, #0
- // assert gpio24
- str r1, [r0, #0x10]
+ ldr r1, sio_base
+ mov r2, #0
+ str r0, [r1, #0x10] // SIO_GPIO_OUT_SET
bl delay
- // deassert gpio24
- str r3, [r0, #0x10]
+ str r0, [r1, #0x18] // SIO_GPIO_OUT_CLR
bl delay
pop {pc}