23 lines
370 B
ArmAsm
23 lines
370 B
ArmAsm
# Base address of memory-mapped IO,
|
|
# Loaded into gp at startup
|
|
.equ IO_BASE, 0x400000
|
|
|
|
# IO-reg offsets. To read or write one of them,
|
|
# use IO_XXX(gp)
|
|
.equ IO_LEDS, 4
|
|
.equ IO_UART_DAT, 8
|
|
.equ IO_UART_CNTL, 16
|
|
|
|
.section .text
|
|
.globl putchar
|
|
|
|
putchar:
|
|
sw a0, IO_UART_DAT(gp)
|
|
li t0, 1<<9
|
|
.L0:
|
|
lw t1, IO_UART_CNTL(gp)
|
|
and t1, t1, t0
|
|
bnez t1, .L0
|
|
ret
|
|
|