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();
 }
 
 /****************************************************************************

Reply via email to