diff options
| author | cheapie <cheapiephp@gmail.com> | 2026-05-30 08:58:29 -0500 |
|---|---|---|
| committer | cheapie <cheapiephp@gmail.com> | 2026-05-30 08:58:29 -0500 |
| commit | d609dcb35dafebeafced9c40d92ddd5da630aa54 (patch) | |
| tree | be5b1083f2f12173dbe936306e46a11cff4d62ea /assembly/misa | |
| parent | 28be6fac111899c930c8072cd42bcbd7be6f5d40 (diff) | |
| download | rvcontroller-d609dcb35dafebeafced9c40d92ddd5da630aa54.tar rvcontroller-d609dcb35dafebeafced9c40d92ddd5da630aa54.tar.gz rvcontroller-d609dcb35dafebeafced9c40d92ddd5da630aa54.tar.bz2 rvcontroller-d609dcb35dafebeafced9c40d92ddd5da630aa54.tar.xz rvcontroller-d609dcb35dafebeafced9c40d92ddd5da630aa54.zip | |
Organize files better and include binaries for assembly samples
Diffstat (limited to 'assembly/misa')
| -rw-r--r-- | assembly/misa/Makefile | 26 | ||||
| -rw-r--r-- | assembly/misa/misa.S | 126 | ||||
| -rwxr-xr-x | assembly/misa/misa.elf | bin | 0 -> 5272 bytes | |||
| -rw-r--r-- | assembly/misa/misa.hex | 29 | ||||
| -rw-r--r-- | assembly/misa/misa.o | bin | 0 -> 1052 bytes | |||
| l--------- | assembly/misa/rvcontroller.ld | 1 |
6 files changed, 182 insertions, 0 deletions
diff --git a/assembly/misa/Makefile b/assembly/misa/Makefile new file mode 100644 index 0000000..95095b6 --- /dev/null +++ b/assembly/misa/Makefile @@ -0,0 +1,26 @@ +# Intentionally less complete default march so that it's still compatible with RVController's minimum configuration +# (in case someone changed the misa value and wants to decode the new one) +MARCH ?= rv32ezicsr_zicond + +.PHONY: all dump load clean + +all: misa.hex + +misa.o: misa.S + riscv32-none-elf-as -I../rvcontroller-libraries -march=${MARCH} -o misa.o misa.S + +misa.elf: misa.o + riscv32-none-elf-ld -T rvcontroller.ld --no-warn-rwx-segments -o misa.elf misa.o + +dump: misa.elf + riscv32-none-elf-objdump -d misa.elf + +misa.hex: misa.elf + riscv32-none-elf-objcopy -O ihex misa.elf misa.hex + +load: misa.hex + bash -c "wl-copy < misa.hex" + +clean: + rm -f misa.bin misa.elf misa.o + diff --git a/assembly/misa/misa.S b/assembly/misa/misa.S new file mode 100644 index 0000000..a360c5e --- /dev/null +++ b/assembly/misa/misa.S @@ -0,0 +1,126 @@ +csrr t0,misa # Read misa + +li a5,11 # Print character +li a0,'R' +ecall +li a0,'V' +ecall +li a0,'3' +ecall +li a0,'2' +ecall + +li t1,1<<8 +and t1,t0,t1 +li a5,11 +li a0,'I' +czero.eqz a5,a5,t1 # Clear ecall function if bit isn't set +ecall + +li t1,1<<4 +and t1,t0,t1 +li a5,11 +li a0,'E' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<12 +and t1,t0,t1 +li a5,11 +li a0,'M' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<0 +and t1,t0,t1 +li a5,11 +li a0,'A' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<5 +and t1,t0,t1 +li a5,11 +li a0,'F' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<3 +and t1,t0,t1 +li a5,11 +li a0,'D' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<16 +and t1,t0,t1 +li a5,11 +li a0,'Q' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<11 +and t1,t0,t1 +li a5,11 +li a0,'L' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<2 +and t1,t0,t1 +li a5,11 +li a0,'C' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<1 +and t1,t0,t1 +li a5,11 +li a0,'B' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<9 +and t1,t0,t1 +li a5,11 +li a0,'J' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<19 +and t1,t0,t1 +li a5,11 +li a0,'T' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<15 +and t1,t0,t1 +li a5,11 +li a0,'P' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<21 +and t1,t0,t1 +li a5,11 +li a0,'V' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<7 +and t1,t0,t1 +li a5,11 +li a0,'H' +czero.eqz a5,a5,t1 +ecall + +li t1,1<<18 +and t1,t0,t1 +li a5,11 +li a0,'S' +czero.eqz a5,a5,t1 +ecall + +li a5,10 +ecall diff --git a/assembly/misa/misa.elf b/assembly/misa/misa.elf Binary files differnew file mode 100755 index 0000000..6f5e949 --- /dev/null +++ b/assembly/misa/misa.elf diff --git a/assembly/misa/misa.hex b/assembly/misa/misa.hex new file mode 100644 index 0000000..4f70427 --- /dev/null +++ b/assembly/misa/misa.hex @@ -0,0 +1,29 @@ +:10000000F32210309307B0001305200573000000A1
+:100010001305600573000000130530037300000032
+:1000200013052003730000001303001033F3620074
+:100030009307B00013059004B3D7670E7300000058
+:100040001303000133F362009307B000130550045B
+:10005000B3D7670E730000003713000033F362005C
+:100060009307B0001305D004B3D7670E73000000E8
+:100070001303100033F362009307B000130510045C
+:10008000B3D7670E730000001303000233F362005E
+:100090009307B00013056004B3D7670E7300000028
+:1000A0001303800033F362009307B000130540048C
+:1000B000B3D7670E730000003703010033F362000B
+:1000C0009307B00013051005B3D7670E7300000047
+:1000D000371300001303038033F362009307B0006B
+:1000E0001305C004B3D7670E73000000130340006C
+:1000F00033F362009307B00013053004B3D7670EE3
+:10010000730000001303200033F362009307B00074
+:1001100013052004B3D7670E7300000013030020FB
+:1001200033F362009307B0001305A004B3D7670E42
+:10013000730000003703080033F362009307B00038
+:1001400013054005B3D7670E730000003783000026
+:1001500033F362009307B00013050005B3D7670EB1
+:10016000730000003703200033F362009307B000F0
+:1001700013056005B3D7670E730000001303000872
+:1001800033F362009307B00013058004B3D7670E02
+:10019000730000003703040033F362009307B000DC
+:1001A00013053005B3D7670E730000009307A00056
+:0401B00073000000D8
+:00000001FF
diff --git a/assembly/misa/misa.o b/assembly/misa/misa.o Binary files differnew file mode 100644 index 0000000..a8b734a --- /dev/null +++ b/assembly/misa/misa.o diff --git a/assembly/misa/rvcontroller.ld b/assembly/misa/rvcontroller.ld new file mode 120000 index 0000000..bc01402 --- /dev/null +++ b/assembly/misa/rvcontroller.ld @@ -0,0 +1 @@ +../../rvcontroller.ld
\ No newline at end of file |
