From 733a45d82e84de894be0c3d29b3305219827f448 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Thu, 2 Dec 2021 23:17:41 -0700 Subject: Initial Commit --- src/uart.S | 112 +++++++++++++++++++++++++++++++------------------------------ 1 file changed, 57 insertions(+), 55 deletions(-) (limited to 'src/uart.S') diff --git a/src/uart.S b/src/uart.S index 94ce458..0864b7e 100644 --- a/src/uart.S +++ b/src/uart.S @@ -2,72 +2,74 @@ .globl uart_init uart_init: - //*UART0_IMSC = 1 << 4; - mov r2, #0x1038 - movt r2, #0x3F20 - mov r3, #0b10000 - str r3, [r2] - //*IRQ_ENABLE2 = 1 << 25; - mov r2, #0xB214 - movt r2, #0x3F00 - mov r3, #0 - movt r3, #0b1000000000 - str r3, [r2] - //*GPU_INTERRUPTS_ROUTING = 0x00; - mov r2, #0x000C - movt r2, #0x4000 - eor r3, r3 - str r3, [r2] - bx lr + //*UART0_IMSC = 1 << 4; + // IGNORE OVERRUN + mov r2, #0x1038 + movt r2, #0x3F20 + mov r3, #0b10000 + str r3, [r2] + //*IRQ_ENABLE2 = 1 << 25; + mov r2, #0xB214 + movt r2, #0x3F00 + mov r3, #0 + movt r3, #0b1000000000 + str r3, [r2] + //*GPU_INTERRUPTS_ROUTING = 0x00; + // Route GPU interrupts to Core0 + mov r2, #0x000C + movt r2, #0x4000 + eor r3, r3 + str r3, [r2] + bx lr .globl uart_char uart_char: - mov r2, #0x1000 - movt r2, #0x3f20 + mov r2, #0x1000 + movt r2, #0x3f20 uart_char.loop: - ldr r3, [r2, #24] - tst r3, #0b100000 - bne uart_char.loop - str r0, [r2] - bx lr + ldr r3, [r2, #24] + tst r3, #0b100000 + bne uart_char.loop + str r0, [r2] + bx lr .globl uart_string uart_string: - push {r4, lr} - mov r4, r0 - ldrb r0, [r0] - cmp r0, #0 - popeq {r4, pc} + push {r4, lr} + mov r4, r0 + ldrb r0, [r0] + cmp r0, #0 + popeq {r4, pc} uart_string.loop: - bl uart_char - ldrb r0, [r4, #1]! - cmp r0, #0 - bne uart_string.loop - pop {r4, pc} + bl uart_char + ldrb r0, [r4, #1]! + cmp r0, #0 + bne uart_string.loop + pop {r4, pc} .globl uart_hex uart_hex: - push {r4, lr} - mov r2, #0x1000 - movt r2, #0x3f20 + push {r4, lr} + mov r2, #0x1000 + movt r2, #0x3f20 uart_hex.loop: - ldr r3, [r2, #24] - tst r3, #0b100000 - bne uart_hex.loop - mov r3, #7 + ldr r3, [r2, #24] + tst r3, #0b100000 + bne uart_hex.loop + mov r3, #7 uart_hex.hloop: - mov r1, r0 - asr r1, r3 - asr r1, r3 - asr r1, r3 - asr r1, r3 - and r1, #0xf - add r1, #0x30 - cmp r1, #0x3A - blt uart_hex.print - add r1, #7 + mov r1, r0 + asr r1, r3 + asr r1, r3 + asr r1, r3 + asr r1, r3 + and r1, #0xf + add r1, #0x30 + cmp r1, #0x3A + blt uart_hex.print + add r1, #7 uart_hex.print: - str r1, [r2] - subs r3, #1 - bge uart_hex.hloop - pop {r4, pc} + str r1, [r2] + subs r3, #1 + bge uart_hex.hloop + pop {r4, pc} -- cgit v1.2.1