diff --git a/seminaries/qtrvsim/uart-echo-irq/uart-echo-irq.S b/seminaries/qtrvsim/uart-echo-irq/uart-echo-irq.S index 75f531a3a1f2e1b41849f78a8c0fed2ddb93b345..148adf57734291a8c486e5fad5480764d55d3fa8 100644 --- a/seminaries/qtrvsim/uart-echo-irq/uart-echo-irq.S +++ b/seminaries/qtrvsim/uart-echo-irq/uart-echo-irq.S @@ -50,6 +50,9 @@ _start: addi a0, zero, 0x101 + li t0, 0x00001800 + // ensure to stay in machine mode after mret test + csrrw zero, mstatus, t0 la t0, skip csrrw zero, mepc, t0 mret // test exception ret @@ -83,8 +86,7 @@ skip: addi t0, zero, 0x0001 li a0, SPILED_REG_BASE loop: - csrrs t1, mepc, zero // check - sw t1, SPILED_REG_LED_LINE_o(a0) + sw t0, SPILED_REG_LED_LINE_o(a0) srli t2, t0, 31 slli t0, t0, 1 or t0, t0, t2