您好!
在 F28377S 中、可以检测堆栈溢出(请参阅 www.ti.com/.../spra820.pdf)。 是否有类似的方法来检测 Tiva-C 处理器中的堆栈溢出? 如果是、相关寄存器的地址是什么?
谢谢、
Dhammika
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.
您好!
在 F28377S 中、可以检测堆栈溢出(请参阅 www.ti.com/.../spra820.pdf)。 是否有类似的方法来检测 Tiva-C 处理器中的堆栈溢出? 如果是、相关寄存器的地址是什么?
谢谢、
Dhammika
您好!
您可以做的一件事是使用 MPU 来捕获堆栈溢出。 SRAM 存储器映射到0x20000000。 请参见下面的。 如果为 SRAM 设置 MPU 区域、则当 CPU 尝试访问定义的 MPU 区域之外的空间时、可能会检测到溢出。 当堆栈溢出发生时、CPU 地址将小于0x20000000 (例如 1FFFFFFF)。 这将成为 MPU 故障、您可以捕捉到它。
您好!
我不熟悉 C28x 仿真分析块、因此无法对此进行真正的评论。 TM4C129使用 Arm Cortex-M4F 内核、它当然具有也可针对观察点进行设置的调试单元。 我认为这些寄存器不能由应用直接访问、因为调试器通常通过 JTAG 和 DAP 使用不同的总线(APB 总线)来访问它们。 我不确定 C28x 是否具有内置的 MPU。 我描述的方法将把您的代码陷阱在异常处理程序中、您的代码可以对此采取纠正措施。