From a5d2f7e9476f3843b320fbcd813ab88dd11d3cea Mon Sep 17 00:00:00 2001 From: bacon Date: Mon, 3 Feb 2025 12:13:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=9C=AA=E8=83=BD=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E8=8E=B7=E5=8F=96C=E8=AF=AD=E8=A8=80=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E5=8F=98=E9=87=8F=E5=9C=B0=E5=9D=80=E7=9A=84bug?= =?UTF-8?q?=EF=BC=8C=E4=BB=A3=E7=A0=81=E6=AD=A3=E7=A1=AE=E8=BF=90=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/sw/linker.lds | 2 +- tb/sw/src/mstStartup.S | 25 +++++++++++++------------ tb/sw/src/mstSvr.S | 2 +- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/tb/sw/linker.lds b/tb/sw/linker.lds index 1ed3937..7b59e4b 100644 --- a/tb/sw/linker.lds +++ b/tb/sw/linker.lds @@ -37,6 +37,6 @@ SECTIONS _RODATA_END_ = .; } - . = 0x40000800; + /*. = 0x40000800;*/ .trap_entry : { *(.trap_entry)} } diff --git a/tb/sw/src/mstStartup.S b/tb/sw/src/mstStartup.S index d7c183f..c9781b0 100644 --- a/tb/sw/src/mstStartup.S +++ b/tb/sw/src/mstStartup.S @@ -54,21 +54,22 @@ _prog_start: lw a0, %lo(plic_claim)(t0) #la a0, plic_claim - lui t0, %hi(flag_intTxEnd) - lw a1, %lo(flag_intTxEnd)(t0) - #la a1, flag_intTxEnd + #lui t0, %hi(flag_intTxEnd) + #lw a1, %lo(flag_intTxEnd)(t0) + + la a1, flag_intTxEnd - lui t0, %hi(flag_intRxError) - lw a2, %lo(flag_intRxError)(t0) - #la a2, flag_intRxError + #lui t0, %hi(flag_intRxError) + #lw a2, %lo(flag_intRxError)(t0) + la a2, flag_intRxError - lui t0, %hi(flag_intRxStart) - lw a3, %lo(flag_intRxStart)(t0) - #la a3, flag_intRxStart + #lui t0, %hi(flag_intRxStart) + #lw a3, %lo(flag_intRxStart)(t0) + la a3, flag_intRxStart - lui t0, %hi(flag_intRxEnd) - lw a4, %lo(flag_intRxEnd)(t0) - #la a4, flag_intRxEnd + #lui t0, %hi(flag_intRxEnd) + #lw a4, %lo(flag_intRxEnd)(t0) + la a4, flag_intRxEnd call mst_svr_code mv t0, a0 #这里选择不同的trap_entry服务函数,这个是RV32I的代码 diff --git a/tb/sw/src/mstSvr.S b/tb/sw/src/mstSvr.S index 8f95443..850dd38 100644 --- a/tb/sw/src/mstSvr.S +++ b/tb/sw/src/mstSvr.S @@ -50,7 +50,7 @@ _rv32i_plic_handle: sw x23, 0(x17) # *plic_claim = x23 #li x25, 1 - + li x24, CDR_INT_TXEND bne x23, x24, 1f #_if (x23 != x24) goto 1f sw x25, 0(x18) #_else