Thread 中讨论的其他器件:SYSBIOS
工具与软件:
您好!
我在中断处理过程中看到总线故障。 这不是最容易重现的东西,但我通常可以看到2或3一天. 这个问题是随机发生的。 在以下示例中、系统甚至尚未完成初始化和初始连接。 但是我也看到过、当系统处于空闲状态而没有消息流量(来自主机的周期性 MQTT 消息除外)时、或者当我大量执行 MQTT 消息时。 似乎没有任何单一的方法来触发问题。 我发布此文章是因为我在调试此问题时遇到了一些问题、所以我正在寻找有关其他要查看的内容或对正在发生的事情的想法的建议。
下面是我在问题发生时看到的堆栈跟踪示例。 需要注意的是、所处理的中断会有所不同、但故障发生前跟踪函数中的最后两项功能始终相同。 回溯:
在此特定情况下、处理了 Simple Link 中断。 指示故障的 PC 是0X2002e2a0、它位于代码空间和 RAM 之外。 在 CPU 寄存器中、需要注意一些有趣的事项。 首先、该地址出现在 R12中。 其次、与 ti_sysbios_KNL_Task_unblocki__E 函数相关的注释表示应该禁用中断。 但是、看看 PRIMASK、它没有设置、因此我认为中断没有被禁用。 事实上、如果您查看 SCB ICSR 寄存器、您可以看到在总线故障激活时还有一个等待的 SysTick 中断。 我想 SysTick 中断可能是在总线故障之前触发的。
感谢您提供任何意见。
此致、
John