增加从站回环的代码,仅加了一个,但是仿真结果有错误,需要检查

This commit is contained in:
2025-02-10 00:03:16 +08:00
parent fd74e07123
commit 9943b5c044
6 changed files with 273 additions and 501 deletions

View File

@@ -4,22 +4,12 @@
#include "tl2cdr.h"
.extern main
.extern plic_handle
.extern int_svr_code
.extern plic_claim
.extern flag_intTxEnd
.extern flag_intRxError
.extern flag_intRxStart
.extern flag_intRxEnd
.globl _prog_start
.section .text.init
_prog_start:
li x1, 0
li x2, 0
li x3, 0
@@ -55,19 +45,14 @@ _prog_start:
#endif
li sp, 0x40011000
li a0, 0
lui t0, %hi(plic_claim)
lw a0, %lo(plic_claim)(t0)
lw a1, %lo(plic_claim)(t0)
la a1, flag_intTxEnd
la a2, flag_intRxError
la a3, flag_intRxStart
la a4, flag_intRxEnd
call int_svr_code
mv t0, a0 #trap_entry,RV32I
#la t0, trap_entry #trap_entryRV32E
csrw mtvec, t0
li t0, 1 << 11
csrw mie, t0
@@ -80,85 +65,3 @@ _prog_start:
ecall
.balign 32
.section .trap_entry, "ax", %progbits
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)
#ifdef __RV32I_MARCH__
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)
#endif
call plic_handle
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)
#ifdef __RV32I_MARCH__
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)
#endif
addi sp,sp,136
mret