2017-05-05 50 views
-1

我在我的系统中使用了看门狗。如果它不在5秒内重新加载,它将被触发。我希望看到在看门狗复位之前完成的代码列表。没有连接的调试器可以)在我的代码中记录指令列表。STM32f429ZI在没有调试器的情况下记录调用堆栈

+0

你在什么操作系统上?你为什么不试试'ptrace'?此外,您仍然需要调试符号来识别堆栈帧上的功能。如果您不希望调试器始终处于连接状态,则可以在看门狗触发后附加它。 –

+1

欢迎来到Stack Overflow!请[编辑]您的问题以显示[迄今为止的代码](http://whathaveyoutried.com)。你至少应该包括一个你遇到问题的代码大纲(但最好是[mcve]),然后我们可以尝试帮助解决具体问题。你还应该阅读[问]。 –

+0

您仍然可以添加显示器,例如'print(“Flag”);'知道您的代码在停止前的位置。 – Badda

回答

0

有几个做的方式:

  1. 使用串行调试输出,并使用USART(另一个微)
  2. 购买USB->串行转换器抓取数据,并使用UART的一个输出数据。
  3. 在极端情况下(例如,当您无法访问引脚时),使用(如果可用)led(s)闪出所需的信息。
0

对于您的问题,有一个简单但又稍贵的解决方案。 Cortex M4内核支持跟踪指令。因此,您需要检查跟踪信号是否路由到引脚(需要大型封装> 100个引脚),启动后启用跟踪,然后连接硬件跟踪器,这将记录内核执行的每个指令。

相关问题