This is an automated email from the ASF dual-hosted git repository. acassis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 2a76bc9d5b15ee230c9d189a96277f42ae93e395 Author: zhangyu117 <[email protected]> AuthorDate: Fri Mar 21 15:05:20 2025 +0800 arch/tricore: dump special registers about trap In addition to general-purpose registers, tricore also provides special trap registers to record exception scenarios. Signed-off-by: zhangyu117 <[email protected]> --- arch/tricore/src/common/tricore_registerdump.c | 30 +++++++++++++++++++------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/arch/tricore/src/common/tricore_registerdump.c b/arch/tricore/src/common/tricore_registerdump.c index 116cac3046c..a9d7d366bff 100644 --- a/arch/tricore/src/common/tricore_registerdump.c +++ b/arch/tricore/src/common/tricore_registerdump.c @@ -40,10 +40,10 @@ ****************************************************************************/ /**************************************************************************** - * Name: tricore_upcsa_register + * Name: tricore_dump_upcsa ****************************************************************************/ -void tricore_upcsa_register(volatile uint32_t *regs) +void tricore_dump_upcsa(volatile uint32_t *regs) { _alert("UPCXI:%08x PSW:%08x SP:%08x PC:%08x\n", regs[REG_UPCXI], regs[REG_PSW], regs[REG_A10], regs[REG_UA11]); @@ -56,10 +56,10 @@ void tricore_upcsa_register(volatile uint32_t *regs) } /**************************************************************************** - * Name: tricore_lowcsa_register + * Name: tricore_dump_lowcsa ****************************************************************************/ -void tricore_lowcsa_register(volatile uint32_t *regs) +void tricore_dump_lowcsa(volatile uint32_t *regs) { _alert("LPCXI:%08x A11:%08x A2:%08x A3:%08x\n", regs[REG_LPCXI] | PCXI_UL, regs[REG_LA11], @@ -72,6 +72,18 @@ void tricore_lowcsa_register(volatile uint32_t *regs) regs[REG_D4], regs[REG_D5], regs[REG_D6], regs[REG_D7]); } +/**************************************************************************** + * Name: tricore_dump_trapctrl + ****************************************************************************/ + +void tricore_dump_trapctrl(void) +{ + _alert("PSTR:%-14.8" PRIX32 "DSTR:%-14.8" PRIX32 + "DATR:%-14.8" PRIX32 "DEADD:%-13.8" PRIX32 "\n\n", + __mfcr(CPU_PSTR), __mfcr(CPU_DSTR), + __mfcr(CPU_DATR), __mfcr(CPU_DEADD)); +} + /**************************************************************************** * Name: tricore_csachain_dump ****************************************************************************/ @@ -82,11 +94,11 @@ void tricore_csachain_dump(uintptr_t pcxi) { if (pcxi & PCXI_UL) { - tricore_upcsa_register(tricore_csa2addr(pcxi)); + tricore_dump_upcsa(tricore_csa2addr(pcxi)); } else { - tricore_lowcsa_register(tricore_csa2addr(pcxi)); + tricore_dump_lowcsa(tricore_csa2addr(pcxi)); } pcxi = tricore_csa2addr(pcxi)[0]; @@ -101,9 +113,11 @@ void up_dump_register(void *dumpregs) { volatile uint32_t *regs = dumpregs; - tricore_lowcsa_register(regs); + tricore_dump_lowcsa(regs); + + tricore_dump_upcsa(regs + TC_CONTEXT_REGS); - tricore_upcsa_register(regs + TC_CONTEXT_REGS); + tricore_dump_trapctrl(); } /****************************************************************************
