增加了一个c语言查询版本的代码,便于沟通调试;如果编译C语言版本,Makefile中控制系统都采用rv32i的march编译即可。

This commit is contained in:
2025-02-10 14:38:49 +08:00
parent 94acbfae03
commit 4d853a29d7
9 changed files with 539 additions and 592 deletions

View File

@@ -5,6 +5,10 @@
.extern int_svr_code
.extern plic_claim
#ifdef __riscv_i
.extern plic_handle
#endif
.globl _prog_start
.section .text.init
@@ -25,7 +29,7 @@ _prog_start:
li x13, 0
li x14, 0
li x15, 0
#ifdef __RV32I_MARCH__
#ifdef __riscv_i
li x16, 0
li x17, 0
li x18, 0
@@ -46,6 +50,9 @@ _prog_start:
li sp, 0x40011000
#ifdef __riscv_i
la t0, trap_entry
#else
li a0, 0
lui t0, %hi(plic_claim)
@@ -53,7 +60,7 @@ _prog_start:
call int_svr_code
mv t0, a0 #trap_entry,RV32I
#endif
csrw mtvec, t0
li t0, 1 << 11
csrw mie, t0
@@ -65,3 +72,100 @@ _prog_start:
call main
ecall
#ifdef __riscv_i
.extern isr_flag
.balign 32
trap_entry:
#.macro define_const name, value
# .equ \name, \value
#.endm
## 使
#define_const CDR_INT_TXEND, 14
opt_trap_entry:
addi sp,sp,136
#sw ra,4(sp)
#sw sp,8(sp)
#sw gp,12(sp)
#sw tp,16(sp)
sw t0,20(sp)
sw t1,24(sp)
#sw t2,28(sp)
sw s0,32(sp)
sw s1,36(sp)
#sw a0,40(sp)
#sw a1,44(sp)
#sw a2,48(sp)
#sw a3,52(sp)
#sw a4,56(sp)
#sw a5,60(sp)
#sw a6,64(sp)
#sw a7,68(sp)
#sw s2,72(sp)
#sw s3,76(sp)
#sw s4,80(sp)
#sw s5,84(sp)
#sw s6,88(sp)
#sw s7,92(sp)
#sw s8,96(sp)
#sw s9,100(sp)
#sw s10,104(sp)
#sw s11,108(sp)
#sw t3,112(sp)
#sw t4,116(sp)
#sw t5,120(sp)
#sw t6,124(sp)
lui t1, %hi(plic_claim)
lw t0, %lo(plic_claim)(t1) # t0 = &plic_claim
lw t1, 0(t0) # t1 = *plic_claim
sw t1, 0(t0) # *plic_claim = t1
slli s0, t1, 2
la s1, isr_flag
add s1, s1, s0
li t0, 1
sw t0, 0(s1)
#lw ra,4(sp)
#lw sp,8(sp)
#lw gp,12(sp)
#lw tp,16(sp)
lw t0,20(sp)
lw t1,24(sp)
#lw t2,28(sp)
lw s0,32(sp)
lw s1,36(sp)
#lw a0,40(sp)
#lw a1,44(sp)
#lw a2,48(sp)
#lw a3,52(sp)
#lw a4,56(sp)
#lw a5,60(sp)
#lw a6,64(sp)
#lw a7,68(sp)
#lw s2,72(sp)
#lw s3,76(sp)
#lw s4,80(sp)
#lw s5,84(sp)
#lw s6,88(sp)
#lw s7,92(sp)
#lw s8,96(sp)
#lw s9,100(sp)
#lw s10,104(sp)
#lw s11,108(sp)
#lw t3,112(sp)
#lw t4,116(sp)
#lw t5,120(sp)
#lw t6,124(sp)
addi sp,sp,136
mret
#endif