Use the timer interrupt to repeatedly print. master time
authorThadeu Lima de Souza Cascardo <cascardo@canonical.com>
Fri, 26 Apr 2019 18:25:27 +0000 (15:25 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@canonical.com>
Fri, 26 Apr 2019 18:30:33 +0000 (15:30 -0300)
blix.S

diff --git a/blix.S b/blix.S
index dd35be8..7eacfaf 100644 (file)
--- a/blix.S
+++ b/blix.S
@@ -7,9 +7,13 @@ _start:
        li a7, 1
        la a1, _hello
        jal puts
-       csrr a2, stvec
-       jal putl
-       csrw 0xfff, a0
+       li a1, 0x20
+       csrs sie, a1
+       csrr a2, time
+       lui a0, 0x800
+       add a0, a0, a2
+       li a7, 0
+       ecall
 halt:
        j halt
 
@@ -45,10 +49,14 @@ _hello:
 .align 8
 _vec:
        li a7, 1
-       la a1, _exception
+       la a1, _hello
        jal puts
-       csrr a2, scause
-       call putl
+       li a7, 0
+       csrr a2, time
+       lui a0, 0x800
+       add a0, a0, a2
+       ecall
+       sret
 loop2:
        j loop2