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.
大家好、
客户有问题需要您的帮助:
我在 BSP 开发阶段发现了这个问题、还没解决。 BSP 开发结束后、我就要回去重新处理这个问题。
经常中断操作时、重现问题非常容易。
例如:串行端口在接收到一串数据后返回相同的数据。
提问:
1.引发此问题的可能原因是什么?
2.当程序跳到"0x3feef8"的时候,如何检查问题的根源?
说明:
*1. 程序架构基于时间片轮询机制。
*2. 如果关闭了时间片轮询机制,则不会发生这种情况。
*3. 由于加密系统的原因、无法提供源文件。
您能帮助检查这个问题吗?
谢谢。此致、
本
Ben、
这个地址、0x3FEEF8、位于器件的 BROM 内。 这就是 CCS 返回无源错误的原因、但对客户更重要的是、为什么我们在代码执行期间跳转到了 BROM。
客户提到这可能发生在高 ISR 负载下、他们可能希望确保堆栈不会溢出、特别是如果它们嵌套中断(即在其他中断内部启用中断)。 如果堆栈溢出、它们可能损坏其源代码、或者如果堆栈指针(SP)不在有效的存储器范围内、则没有有效的返回地址。
我相信 CCS 中有一个堆栈分析工具可以实时运行、以便对此进行诊断。
此致!
马修
Matthew、您好!
客户一开始检查了堆栈问题、但没有发现任何问题。
配置:
调试(正常):
调试(发生异常):
堆栈用法:
以上:小费100%,如何理解这一点?
上面:感叹号是什么意思?
此致、
本
Ben、
感谢提供信息、看起来堆栈受到了很好的控制。 我需要查看"!" 还有一点、我觉得如果客户在这个问题上多留点时间、应该给一些小费。
我们知道客户是否嵌套了中断、即在其他 ISR 内重新启用中断? 如果管理不当、可能导致堆栈损坏和用于返回地址的地址不正确。
此致!
马修
尊敬的 Mattherw:
感谢你的帮助。 问题与中断有关。