2017-05-05 96 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個引腳),啓動後啓用跟蹤,然後連接硬件跟蹤器,這將記錄內核執行的每個指令。

相關問題