ESP32 學習筆記
張婷婷 2019.09.22
目錄
3.2 ESP32_WROOM 32D 與ESP32_Lyart合併使用同一個idf 6
概述
官方參考文檔
例程介紹: https://github.com/espressif/esp-adf/tree/master/examples/player/pipeline_sdcard_mp3_control
快速入門: https://docs.espressif.com/projects/esp-idf/zh_CN/latest/get-started/index.html
音頻指南: https://docs.espressif.com/projects/esp-adf/en/latest/
1 ESP32-WROOM-32D 學習心得
1.1 vscode 下載
vscode->File->open floder->選擇對應程序文件夾
Ctrl+` 打開中終端 à (make clean) à make all à (make erase_flash) à make flash
1.2 生成阿里雲新的.a文件
編譯鏈mingw32 ->cd 阿里雲套件路徑 ->make reconfig -> 1 ->耐心等待 ->make->耐心等待
1.3 編譯鏈下載
編譯鏈mingw32 -> cd 程序文件夾路徑 -> (make clean) -> make -> make flash
1.4 log日誌等級修改
2 ESP32_PICO_D4 學習心得
ESP32_PICO_D4與ESP32_WROOM_32D 可共用idf及編譯環境,這就代表着這兩者程序可相互通用.
3 ESP32_LyraT 學習心得
3.1 環境搭建及編譯
0)參考網址:
https://blog.csdn.net/qq_27158179/article/details/89646815 //小bug
https://www.cnblogs.com/54zorb/p/9784119.html //pintf
https://blog.csdn.net/qq_41630102/article/details/82998813 //順利
1)克隆ESP32-adf 框架
編譯鏈mingw32 -> cd 存放adf文件夾路徑 -> git clone --recursive https://github.com/espressif/esp-adf.git -> 耐心等待,最好手機開熱點給電腦使用,如果失敗換個網絡再嘗試.
2)添加adf /idf 腳本路徑
在編譯鏈的腳本文件 esp32_toolchain.sh 中增加 adf /idf 腳本路徑,這裏的idf就使用adf中自帶的idf,編譯比較好通過.由於ESP32_PICO_D4與ESP32_WROOM_32D 使用的idf和這裏ESP32_LyraT的不同,所以需要在腳本文件中切換idf文件路徑.
3)編譯例程播放一段音樂
在編譯的時候發現一個error錯誤提示,提示TOUCH_PAD_NUM9未定義, 所以我們需要在board_pins_config.c文件中添加包含頭文件:#include "driver/touch_pad.h".
我使用的編譯鏈是esp32_win32_msys2_environment_and_toolchain-20181001 編譯時提示需要更新python依賴包,也按照提示內容run更新一下.(忘記截圖了,提示內容主要是下圖所示)
接下來的編譯過程有可能會出現讓你選擇SDKconfig的配置,直接按回車鍵選擇默認值,至此編譯應該就沒問題了.編譯通過後運行make menuconfig修改下載串口號,修改完保存退出,再運行make all,編譯結束後就可以make flash下載了.
3.2 ESP32_WROOM 32D 與ESP32_Lyart合併使用同一個idf
之前ESP32_WROOM 32D是使用esp-idf-v3.1.4開發的,後期ESP32_Lyart是用esp-adf裏自帶的idf開發的,這就造成了兩類芯片模組工程需要來回切換腳本文件中的idf路徑比較麻煩,所以研究了合併這兩類工程的idf, 主要是使用esp-idf-v3.1.4開發的ESP32_WROOM 32D程序做以下3個地方修改:
- 修改編譯鏈腳本中idf路徑
統一idf路徑爲adf中自帶的idf:
- 修改阿里雲套件裏的HAL_OS_espressif.c
Idf裏已經定義實現了int clock_gettime()函數,所以這裏需要註釋該函數的實現:
- 修改每個工程下的Makefile中的mk文件路徑
使用adf下的project.mk文件:
3.3 ESP32編譯固件大於1M問題
首先確定模組flash size大於2M並選擇實際flash size,修改partition_table爲Single factory app, no OTA (僅支持一個APP,無法再進行OTA空中升級):
修改core dump 轉存地爲None:
修改idf裏分區表APP的大小爲2M:
修改完這三個地方後,make clean下工程,清除完成後再重新編譯一下就可以燒錄運行大於1M的固件了。