commit 2b551fc12eeed84218c604b1dee0d44c1dae57c2
parent 00047d21cef637a2ada062b3399d49b97ef6316f
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Mon, 11 Aug 2025 13:47:35 +0900
set up uart0 interrupt, wip
Diffstat:
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/spi/main.s b/spi/main.s
@@ -112,7 +112,7 @@ wait_vco:
 	ldr r0, =(3 << 5 | 1 << 4) // WLEN = 8, FEN = 1
 	str r0, [r3, #0x2c] // UART: UARTLCR_H
 
-	// enable uart interrupt
+	// enable uart interrupt in cpu
 	ldr r4, ppb_base
 	mov r5, #0xe1
 	lsl r5, #8
@@ -120,7 +120,21 @@ wait_vco:
 	lsl r0, #20
 	str r0, [r4, r5] // M0PLUS: NVIC_ISER
 
+	// enable uart interrupt in uart0 subsystem
+	ldr r1, uart0_base
+	// according to sdk's src/rp2_common/hardware_uart/include/hardware/uart.h
+	// receive interrupt needs RTIM bit masked
+	mov r2, #(1<<6|1<<4) // RTIM | RXIM
+	str r2, [r1, #0x38] // UART: UARTIMSC
+	// set fifo level to 0
+	mov r2, #0
+	str r2, [r1, #0x34] // UART: UARTIFLS
+	bl delay
+	ldr r0, [r1, #0x3c] // UART: UARTRIS
+	bl printh
+
 loop:
+	wfe
 	b loop
 
 // functions
@@ -224,7 +238,7 @@ bled:
 delay:
 	push {r0}
 	mov r0, #1
-	lsl r0, r0, #20
+	lsl r0, r0, #24
 delay_loop:
 	sub r0, r0, #1
 	bne delay_loop