From 25dd685345b4bba7418eca4252e1b65ce20356cd Mon Sep 17 00:00:00 2001 From: taitep Date: Sun, 21 Dec 2025 17:04:18 +0100 Subject: [PATCH] Add a linker script and example uart echo program --- echo.S | 18 ++++++++++++++++++ link.ld | 22 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 echo.S create mode 100644 link.ld diff --git a/echo.S b/echo.S new file mode 100644 index 0000000..58b2573 --- /dev/null +++ b/echo.S @@ -0,0 +1,18 @@ +.section .text +.globl _start + +.equ UART_DATA, 0 +.equ UART_STATUS, 1 +.equ UART_RX_READY = 0b10 +.equ UART_TX_READY = 0b01 + +_start: + li a0, 0x1000 + +loop: + lbu t0, UART_STATUS(a0) + andi t0, t0, UART_RX_READY + beqz t0, loop + lbu t0, UART_DATA(a0) + sb t0, UART_DATA(a0) + j loop diff --git a/link.ld b/link.ld new file mode 100644 index 0000000..3868b23 --- /dev/null +++ b/link.ld @@ -0,0 +1,22 @@ +ENTRY(_start) + +SECTIONS { + . = 0x80000000; + + .text : ALIGN(4) { + *(.text*) + } + + .rodata : ALIGN(8) { + *(.rodata*) + } + + .data : ALIGN(8) { + *(.data*) + } + + .bss : ALIGN(8) { + *(.bss*) + *(COMMON) + } +}