您好!
我想知道在进入 Default_handler 之前执行了什么代码。 是否有存储上次执行代码地址的寄存器? 如果没有、我想知道如何检查 CCS。
这是我当前正在运行的示例代码。
・simplelink_msp432e4_sdk_4_20_00_12\examples\nortos\MSP432E411Y_BGAEVM\demos\outofbox_msp432e411y
谢谢、
Astro
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.
您好!
我想知道在进入 Default_handler 之前执行了什么代码。 是否有存储上次执行代码地址的寄存器? 如果没有、我想知道如何检查 CCS。
这是我当前正在运行的示例代码。
・simplelink_msp432e4_sdk_4_20_00_12\examples\nortos\MSP432E411Y_BGAEVM\demos\outofbox_msp432e411y
谢谢、
Astro
您好、 Ralph
感谢您的回答。
[问题1]
我检查了 PSR 值、异常号是0x03。 就数据表而言、它被认为是由 GPIO 端口 D 的中断引起的。我的看法是否正确?
[问题2]
如果我对问题1的理解是正确的、那么我们需要考虑中断发生的原因。
目前、我正在检查以太网功能的运行情况。
我在 SDK 中找到了使用具有以太网的 Iwip 协议栈的示例、因此我进行了一些更改并确认了操作。
在与 DHCP 服务器交换 DHCP Ack 消息后,分配的 IP 地址不会输出,并且会发生硬故障,Default_Handler()函数进入无限循环。
是否可以获得任何意见?
谢谢、
Astro
您好 Astro、
如果 PSR 处理程序中的值为0x03、则未单击默认处理程序、而是单击系统故障处理程序。 这是一种不同类型的故障。
当您尝试访问尚未启用的外设时、最常遇到故障处理程序。
您需要查找的是 NVIC_FAULT_STAT 和 NVIC_FAULT_ADDR 值。
NVIC_FAULT_STAT 值全部在技术参考手册 的表2-37下提供。 FAULTSTAT 寄存器字段说明。 因此、请检查您的错误类型。
如果 NVIC_FAULT_STAT 指示发生了精确总线故障、则可以检查 NVIC_FAULT_ADDR 以查看触发故障的器件部分。 如果 是外设、您可能会尝试在启用外设之前对其进行访问。

如果您有与此不同的东西、请报告故障值、我可以提供进一步的指导。
此致、
Ralph Jacobi
您好、Ralph
[引用 userid="189615" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1165139/msp432e411y-how-to-trace-code-location-before-entering-handler-hardfault/4396852 #4396852"]请增大系统堆栈的大小,并查看故障是否继续发生。我正在尝试验证是否增加了堆栈的容量以避免堆栈溢出。
我从 CCS 基本选项中增加了堆栈大小、然后点击了构建按钮、但链接器命令文件中的堆栈大小不变。 上述步骤是否正确? 
谢谢、
Astro
您好 Astro、
请参阅以下有关如何调整堆栈大小的信息。 它适用于不同的 MCU、但也适用于 MSP432E4的 SimpleLink SDK。 它还提供了有关应用堆栈的详细信息、以备将来需要时使用:
此致、
Ralph Jacobi