ESP32 使用遇到的問題集----持續更新

0、參考資料

https://blog.csdn.net/qq_27114397/article/details/82288917 

1、遇到的問題以及解決方法

1.1無法進入燒錄模式下載程序

因爲esp32芯片進入燒寫模式的條件是啓動時檢測boot引腳,因此需要摁着boot鍵才能下載程序。

出現連接不上spi flash時,出現如下情況:

出現這種情況一般是啓動配置的strapping引腳採樣電平不符合啓動模式,需要調整硬件電路。 

1.2 在linux裏下載程序的時候老提示串口權限不足

linux下面串口設備的一般是root權限,因此使用串口需要取得root權限或者修改dev目錄下串口的權限。

想 串口支持當前用戶,需要把當前用戶添加到Group,添加辦法

sudo usermode -a -G dialout $USER

1.3  LoadProhibited StoreProhibited問題   <禁止加載、禁止存儲>

 當應用程序嘗試讀取或寫入無效的內存位置時,會發生此 CPU 異常

可能原因:寫入/讀取的地址可在寄存器轉儲中的 EXCVADDR 寄存器(途中紅色劃線)中找到.

1、如果此地址爲零,則通常表示應用程序嘗試引用 NULL 指針(勿忘對數組成員取地址);

2、如果此地址接近於零,則通常意味着應用程序嘗試訪問結構體的成員,但指向該結構的指針爲 NULL;

3、如果該地址是別的(垃圾值,不在 0x3fxxxxxx - 0x6xxxxxxx 範圍內),則可能意味着用於訪問數據的指針未初始化或已損壞。

引用NULL指針(&地址引用錯誤、野指針....)

上述例子原因在於下面,我free掉了這個扇區的信息,後期又esp_ota_get_running_partition()去獲取,結果出錯。

esp_partition_t * partition = esp_ota_get_running_partition();
ESP_LOGI(TAG,"current partition info: %s",partition->label);
free(partition);

 

1.4 在編譯時出現error: unrecognized command line option '-mfix-esp32-psram-cache-issue' 

原因:這是因爲ESP32的某些修訂存在一些問題,這些問題會對外部RAM的使用產生影響。而這些內容都記錄在ESP32 ECO文檔中。

ESP-IDF以下列方式處理提及的錯誤

ESP32 rev v0-----ESP-IDF沒有針對此版本硅片中的錯誤的解決方法,它不能用於將外部的PSRAM映射到ESP32s 主存儲映射中。

ESP32 rev v1-----某些機器指令序列在外部存儲器位置上運行時(ESP32 ECo 3.2)上運行時,此芯片版本中的錯誤會帶來微信。

爲了解決這個問題,編譯ESP-IDF的gcc編譯器 擴展了一個標誌:-mfix-esp32-psram-cache-issue。

將這個標誌傳遞給命令行上的gcc,編譯器可以解決這個問題,並只輸出可以安全執行的代碼。

出現不認識的錯誤,是編譯工具鏈的問題。

可以通過在ESP-IDF中,選擇CONFIG_SPIRAM_CACHE_WOrKAROUND時,將啓動此標誌。此時ESP-IDF還採取其他措施確保不使用PSRAM訪問和違規指令集的組合。這些措施包括:

在Makefile中除能下圖選項,即可不啓動此標誌。不建議使用。

 

 

1.5 Brownout detector was triggered  斷電探測器觸發復位

已觸發斷電探測器。

原因在於:

ESP32的電平低於某個值(這個值是可以設定的),然後觸發了斷電探測器,斷電探測器會使得ESP32重新啓動。

解決:換個電源,要不就是ESP32板子設計本身有問題,最終的大招,禁用斷電探測器

具體參見https://blog.csdn.net/qq_31232793/article/details/87889368

make menuconfig->component config->ESP32-specific->Hardware brownout detect & reset禁用掉這個選項,將不再檢測電平。或者也可在再這個選項的下面選擇一個更合適的保護電平。

 

1.6  檢測到任務堆棧溢出

最簡單的方法就是增大堆棧大小,具體選擇什麼合適的堆棧大小,我暫時還不會。求各位看客指點。 

1.7 未及時重置開門狗

 當時系統在TWDT溢出時間內從未讓出過CPU讓IDLE任務得以執行。//應該看看CPU佔用率

------任務分析:可以試着關閉一些調試打印(調試打印也需要佔用時間)

 

1.8 OTA升級程序時出現一下error 

system_event_sta_disconnected_handle_default 243 esp_wifi_internal_reg_rxcb

 

 

 

 

1.9 MQTT連接下,斷網和與服務器間通信不好,ESP32上報的錯誤

用的IDF版本爲v3.2.2,出現qos爲0時,出現這種錯誤上報

1.9.1 問題1、發送間隔小於100ms或多個任務同時發送時,會發送下面的現象

 

直到超時,ping不通後,斷開連接。 

1.9.2 問題2、MQTT假性連接,數據實際上一直沒有發出去

1.9.3 問題3:cert證書無效

1.9.4 問題4 證書不可信任 

1.10 供電不足 

電壓不足,報錯可以說還有其他類型。下面就是各種類型報錯

 

1.11 連接服務器報錯(113)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章