網頁最後修改時間:2016/12/12
雖然我們都會在程式裡面加上 Serial.print("錯誤發生") 來輸出訊息以提供程式在哪裡出現問題的提示,但是對於在 Arduino 上撰寫 ESP8266 程式時,似乎不是那麼的方便與容易 ! 應該要提示的訊息總是擦肩而過,而且一點消息都沒有 !
這種情況最常出現的是程式執行當中突然因為某原因造成重新開機的時候,只要不是單獨只輸出亂碼,那麼出現錯誤時的訊息與接之而來的開機訊息,就能作為接下來分析系統崩潰 (Crash) 的原因 !
- 【ESP8266 崩潰 (Crash) 的時候 !】2016/12/12
如網頁一開頭說的,如果系統在 Crash 當下有交代遺言 (就是有輸出一些文字),那麼就可以根據下面的方式進行 Debug;但若是一開機就是亂碼,絕大部分是燒錄出問題,重新燒錄試試成功上傳就會正常了。
【ESP8266 崩潰 (Crash) 的時候 !】
當程式執行的時候出現錯誤,從 Serial Monitor 上可以看到類似下圖右方的輸出訊息(下面是一個執行出現錯誤時的實際輸出訊息)
舉例說明,ESP8266 crash 的輸出訊息 |
- Exception Code
- Stack Trace
- Restart Log
輸出訊息區分 |
常遇到的 Exception Code |
Exception Code for Arduino ESP8266 Core |
Exception (28): epc1=0x402159d2 epc2=0x00000000 epc3=0x00000000 excvaddr=0x000000fe depc=0x000000
要分析 [Stack Trace],Arduino IDE 必須先安裝 "Arduino ESP8266/ESP32 Exception Stack Trace Decoder" 這個工具,安裝好之後就會在 Arduino IDE 的 "Tools" 選單下面看到出現新的欄位
安裝好 "Arduino ESP8266/ESP32 Exception Stack Trace Decoder" 工具之後,在 "Tools" 選單下面新增的項目 |
Exception Decoder 除錯 |
造成此次重新啟動的原因 |
參考資料:ESP8266 重啟原因以及常見 Fatal Exception 原因
參考網頁:My ESP crashes running some code. How to troubleshoot it?
<< 相關網頁與連結 >>
- Google Spreadsheet(試算表)之 ESP8266 溫濕度紀錄與趨勢圖
- ESP8266 入門學習套件支援 Arduino IDE 開發環境之安裝、使用說明與範例
說明如何在 Arduino IDE 環境中開發 ESP8266 的程式。 - ESP8266 Arduino IDE 開發問與答 Q&A ( 1 )
- 【ESP8266 / 模組 / 開發板】
- 【Web of Thing (WoT, 萬物網)】
- 【聰明連線的方法:WPS / Smart Config】
- ESP8266 Arduino IDE 開發問與答 Q&A ( 2 )
- 【EEPROM 和 SPIFFS 都是 Flash】
- ESP8266 Arduino IDE 開發問與答 Q&A ( 3 )
- 【ESP8266 崩潰 (Crash) 的時候 !】
沒有留言:
張貼留言
留言屬名為"Unknown"或"不明"的用戶,大多這樣的留言都會直接被刪除掉,不會得到任何回覆!
發問問題,請描述清楚你(妳)的問題,別人回答前不會想去 "猜" 問題是什麼?
不知道怎麼發問,請看 [公告] 部落格提問須知 - 如何問問題 !