This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TM4C123GH6PM:如何修改用法故障处理程序

Guru**** 2480435 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/698036/ccs-tm4c123gh6pm-how-to-modify-usage-fault-handler

器件型号:TM4C123GH6PM

工具/软件:Code Composer Studio

我特意创建了一个0除法错误来调用用法故障处理程序、但当我打印结果时、它会打印错误。 而不是执行我的故障处理程序。 我将 startup_ccs.c 文件中的用法故障处理程序从默认值更改为自定义值。 我应该如何处理故障、以便将其转至我的处理程序?

 

内部
main (空)

   volatile uint32_t ui32Loop;
   SysCtlClockSet (SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN| SYSCTL_XTAL_16MHz);
   ConfigureUART();
   uint32_t a、b、c、d、val;
   uint32_t status,e,f,g,h, K、Faultstatus;
   float num;
   A = 5;
   b = 8;
   C = 10;
   D = 12;
   FlashAllUserRegisterSet (a、b、c、d);
   SysCtlDelay (1000);
   FlashUserSave();
   SysCtlDelay (1000);
   UARTprintf ("set\n");
   SysCtlDelay (1000);
   状态= FlashAllUserRegisterGet (&e、&f、&g、&h);
   UARTprintf ("%d\n"、status);
   if (status =0){
       UARTprintf ("print\n");
       UARTprintf ("%d\n",f);
       UARTprintf ("%d\n"e);
       UARTprintf ("%d\n"g);
       UARTprintf ("%d\n",h);
   }
   FAULTSTATUS = HWREG (NVIC_FAULT_STAT);
   UARTprintf ("NVIC_FAULT_STAT =>%d \n"、faultstatus);
   k = UARTCharGet (UART0_BASE);
   num =(float) k;
   Val =((float) 5)/num;
   FAULTSTATUS = HWREG (NVIC_FAULT_STAT);
   UARTprintf ("NVIC_FAULT_STAT =>%d \n"、faultstatus);
   UARTprintf ("%f\n"、val);
 }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mohammed、

    我不是很理解您想要实现的目标。 实现故障处理程序的目标是什么?

    我看不到任何有关故障处理程序功能的代码、您能否发布这些代码?

    我假设您创建了一个新的 ISR、并用它替换了 startup_ccs.c 矢量表中的 FaultISR?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mohammed、

    您是否能够解决此问题? 如果不是、您能回答我之前发布的问题吗?