Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
我正在寻求一种通用方法来确定 TI-RTOS 项目为何达到下面屏幕截图中所示的 abort()。 我有几个任务、我不确定是什么触发了我的错误。
打印到控制台的六个值是什么? 我假设 FSR 是"故障状态寄存器"、但在这种情况下、存储器浏览器告诉我 FAULT_STAT 被设置为0x00000400 (不精确的数据总线错误)。 BFARV 位未置位、因此我无法在 FAULTADDR 寄存器中看到导致故障的地址
根据 下面的屏幕截图、在诊断 Stellaris微控制器中的软件故障 AN01286中描述的异常堆栈框表示 PC 值为0x20000548。 此 SRAM 位置似乎没有操作码。 其他值似乎与内核寄存器不匹配。 LR 值还指示 PC 正在从 SRAM 运行。 我不知道 SRAM 中包含什么代码或如何对其进行调试。
该指南说:"如果您的故障处理程序函数除了简单的无穷大循环之外还有任何代码、则可能会使用一些堆栈空间。 您必须将堆栈指针的值调整为此数量、才能找到异常堆栈帧的起始位置。" abort()是否取代 FaultISR()? pem4f.c 文件似乎将 ti_sysbios_family_arm_m3_Hwi_excHandlerAsm__i 放置在故障向量处。 故障处理程序函数的大小是多少? 我是否查看了实际的异常堆栈帧?
我不确定如何根据此输出在我的代码中查找故障。