您好!
我将 TI-RTOS 与我的 TivaC 配合使用。 我想知道如何在 TI-RTOS 下启用总线故障"tirtos_tivac_2_16_01_14"。 因此、每当总线故障发生时、它将直接跳转到总线故障、而不是硬故障。
谢谢、
穆罕默德
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.
您好!
我将 TI-RTOS 与我的 TivaC 配合使用。 我想知道如何在 TI-RTOS 下启用总线故障"tirtos_tivac_2_16_01_14"。 因此、每当总线故障发生时、它将直接跳转到总线故障、而不是硬故障。
谢谢、
穆罕默德
您好!
总线故障为5、而硬件故障为3。 另请注意您可能看到的故障升级。

通常情况下、异常优先级与异常屏蔽寄存器的值一起决定
处理器是否进入故障处理程序、以及故障处理程序是否可以取代另一个
故障处理程序,如第101页的“异常模型”所述。
在某些情况下、优先级可配置的故障被视为硬故障。 这个过程被调用
优先级升级、故障被描述为升级为硬故障。 升级至硬故障
在以下情况下发生:
■故障处理程序引起的故障与它正在处理的故障类型相同。 这种升级到困难
故障发生是因为故障处理程序不能取代自身、因为它必须具有相同的优先级
作为当前优先级。
■故障处理程序引起的故障优先级与它所处理的故障相同或更低。 这种情况
出现这种情况是因为新故障的处理程序不能取代当前正在执行的
故障处理程序。
μ■异常处理程序产生的故障的优先级等于或低于当前的优先级
正在执行异常。
■发生故障、且该故障的处理程序未启用。
如果在进入总线故障处理程序时在堆栈推送期间发生总线故障、则总线故障不会发生
升级至硬故障。 因此、如果堆栈损坏导致故障、则故障处理程序甚至会执行
但处理程序的栈推送失败。 故障处理程序运行、但堆栈内容为
损坏。
在我看来、您的示例(调用到0)比总线故障更有可能生成 UsageFault (无效指令)。 为此、您需要 IntEnable (FAULT_USAGE);"。 还有 MemManage (FAULT_MPU)、尽管我认为位置0是可执行的。
[编辑:interrupt.c 位于此处:
https://dev.ti.com/tirex/explore/node?node=AGi52D8FGr8.qMQiFH7NEg__mic1X5.__LATEST
]