.section .text .globl _start _start: li x1, 0x0 li x2, 0x0 li x3, 0x0 li x4, 0x0 li x5, 0x0 li x6, 0x0 li x7, 0x0 li x8, 0x0 li x9, 0x0 li x10, 0x0 li x11, 0x0 li x12, 0x0 li x13, 0x0 li x14, 0x0 li x15, 0x0 li x16, 0x0 li x17, 0x0 li x18, 0x0 li x19, 0x0 li x20, 0x0 li x21, 0x0 li x22, 0x0 li x23, 0x0 li x24, 0x0 li x25, 0x0 li x26, 0x0 li x27, 0x0 li x28, 0x0 li x29, 0x0 li x30, 0x0 li x31, 0x0 li t0, 0x10000000 # UART base address li t1, 'E' # Character to print sb t1, 0(t0) li t1, 'n' sb t1, 0(t0) li t1, 't' sb t1, 0(t0) li t1, 'r' sb t1, 0(t0) li t1, 'y' sb t1, 0(t0) li t1, '\n' sb t1, 0(t0) # Set up a stack for C. la sp, stack0 li a0, 1024*4 # a0 = 4096 csrr a1, mhartid # a1 = hart id addi a1, a1, 1 # hartid + 1 mul a0, a0, a1 # a0 *= hartid+1 add sp, sp, a0 # sp += a0 # Jump to start() in start.c call start 1: j 1b # Infinite loop