免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

CLion+PlatformIO開發(fā)ESP32:從環(huán)境搭建到調(diào)試避坑完整指南

CLion+PlatformIO開發(fā)ESP32:從環(huán)境搭建到調(diào)試避坑完整指南 CLion 自己帶了 PlatformIO 插件這事情知道的人不少真正把它用好、把 ESP32 開發(fā)流程完整跑通的人并不多。如果你還在用 Arduino IDE 寫 ESP32或者一邊開著 VS Code 一邊抱怨代碼補全太弱那這篇文章值得看完。我會從環(huán)境搭建、工程結(jié)構(gòu)、編譯燒錄、調(diào)試排查一條龍講下來把我實際踩過的坑和驗證過的配置直接擺出來你照著做就行。我自己用 CLion 做 ESP32 開發(fā)已經(jīng)有幾個月從最初的純命令行 ESP-IDF 裸寫到后來換成 PlatformIO再到把日常主力 IDE 固定在 CLion中間折騰了不少。最大的感受是CLion 對嵌入式開發(fā)的支持遠比大多數(shù)人想象中成熟PlatformIO 插件也不是簡單套個殼而是真正把 CMake、工具鏈、燒錄器、串口監(jiān)視器全部整合進了 IDE 的圖形界面里。這篇文章不聊虛的直接進入實操。1. 為什么是 CLion PlatformIO工具選型和實際體驗1.1 這個組合解決了什么痛點先說說這套方案到底解決了什么問題。你用 Arduino IDE 開發(fā) ESP32優(yōu)點是上手快但代碼量一上來就非常難受沒有跳轉(zhuǎn)定義、沒有全局重命名、沒有語法高亮補全更別說多文件項目的自動索引。你用 VS Code PlatformIO功能其實也挺全但 VS Code 對大型 C/C 工程的處理能力不如 CLion 扎實尤其在頭文件解析、CMake 兼容和遠程開發(fā)這些場景下差距明顯。CLion 本身就是 JetBrains 出品的 C/C IDE對 CMake 的支持是原生級別的。PlatformIO 在底層用 CMake 組織構(gòu)建流程兩者天然契合。CLion 自己帶的 PlatformIO 插件不是靠外部命令行模擬而是深度集成了pio命令、工具鏈、燒錄器和串口監(jiān)視器。你在 CLion 的 Run 配置里可以直接選 Upload、Monitor 或者 Upload and Monitor點一下按鈕就完成整個操作鏈全程不需要離開 IDE。我實測下來還有一個很實際的優(yōu)點CLion 的代碼索引比 VS Code 更快更準(zhǔn)。ESP32 的工程里一般會涉及到 ESP-IDF 的頭文件樹、FreeRTOS 的頭文件、SDK 配置宏這些東西加起來可能有幾千個頭文件。用 VS Code 打開這種工程經(jīng)常會出現(xiàn)頭文件找不到、宏定義無法展開的問題CLion 的索引機制會把整個工程樹理得更清楚誤報少得多。1.2 和 Arduino IDE、VS Code、純 ESP-IDF 的橫向?qū)Ρ群芏嗳思m結(jié)到底用哪套方案我認為選擇標(biāo)準(zhǔn)其實很簡單看你的項目規(guī)模和調(diào)試需求。為了讓你看得清楚我直接做了一張對比表方案代碼補全能力多文件工程管理燒錄與監(jiān)視底層框架控制上手難度Arduino IDE很弱幾乎為零一鍵但功能簡單很弱極低VS Code PlatformIO較強較好一鍵 插件生態(tài)中等中等純命令行 ESP-IDF依賴外部編輯器不適用手動輸入命令完全可控較高CLion PlatformIO很強優(yōu)秀深度集成完全可控中等偏高從表里可以看出CLion 組合最大的優(yōu)勢是既保留 PlatformIO 的方便性又獲得接近完整 ESP-IDF 開發(fā)流程的控制力。比如說sdkconfig文件怎么管理、自定義分區(qū)表怎么設(shè)置、FreeRTOS 內(nèi)核怎么裁剪這些在 Arduino IDE 里沒法細調(diào)的操作在 CLion 里可以直接改配置文件IDE 會自動感知并重新加載。1.3 什么樣的人最適合這個方案說說適合誰。如果你正在做比較復(fù)雜的 ESP32 項目比如帶 WiFi BLE FreeRTOS 多任務(wù) 外接傳感器集群那么這個方案會讓你的開發(fā)效率提升一大截。如果你是有 C/C 基礎(chǔ)、但第一次接觸嵌入式開發(fā)CLion PlatformIO 也合適因為它的代碼提示能幫你少走很多頭文件路徑和類型聲明的彎路。如果你只是做個 LED 閃爍或者簡單溫濕度讀取那就別折騰了Arduino IDE 五分鐘搞定沒必要為這種小項目上重型 IDE。這里我特別想強調(diào)一點PlatformIO 不等于 Arduino。它不僅能調(diào)用 Arduino 框架還能直接用 ESP-IDF 原生框架以及多種第三方 RTOS 和通信庫。在 CLion 里你完全可以創(chuàng)建基于 ESP-IDF 的 PlatformIO 工程然后獲得原生 SDK 的一切能力。很多人以為 PlatformIO 只是個庫管理器這是誤解。2. 環(huán)境搭建從安裝到第一個可編譯工程2.1 前置依賴和版本注意事項先說版本。CLion 建議用 2023.2 以上版本PlatformIO 插件在這之后集成度明顯更好。ESP32 的開發(fā)工具鏈方面PlatformIO 會自動下載工具鏈、SDK 和編譯器你不需要手動安裝 ESP-IDF這是它比純 IDF 流程省心的地方。不過在開始之前有幾個前置條件需要確認Python 3.10 以上版本。PlatformIO 的內(nèi)部核心依賴 Python版本太舊會出各種奇怪報錯。我在 Windows 上實測Python 3.8 環(huán)境下安裝 PlatformIO 插件后創(chuàng)建工程失敗升級到 3.11 就正常了。確保 CLion 里的 CMake、Toolchain 等設(shè)置項沒有被強制修改。PlatformIO 插件會接管構(gòu)建流程CLion 的默認配置反而最穩(wěn)妥。如果你在 Linux 或 macOS 下開發(fā)建議先安裝 USB 串口驅(qū)動。Windows 下大多數(shù) ESP32 開發(fā)板用的是 CH340 或 CP210x 芯片建議提前裝好驅(qū)動否則后面燒錄會卡在端口識別環(huán)節(jié)。2.2 在 CLion 中安裝 PlatformIO 插件安裝過程很簡單。打開 CLion進入Settings - Plugins在 Marketplace 搜索 PlatformIO for CLion點安裝重啟 IDE。裝完以后菜單欄上會出現(xiàn)一個 PlatformIO 圖標(biāo)左側(cè)工具欄也會多出一個 PlatformIO 面板。到這里插件就算裝好了不需要額外安裝命令行工具因為插件會自己處理pio命令的路徑。這里我要多說一句在標(biāo)題里強調(diào)的“自帶的 PlatformIO”指的就是這個官方插件。它和你在 VS Code 里裝 PlatformIO 插件是同一套內(nèi)核但 CLion 版本在底層調(diào)用了自家的索引器來處理代碼導(dǎo)航所以整體體驗更統(tǒng)一。2.3 創(chuàng)建工程用 PlatformIO 向?qū)н€是手工建目錄我的建議是第一次用的人直接通過 PlatformIO 面板創(chuàng)建工程不要自己手工建目錄再導(dǎo)入。原因是 PlatformIO 有固定的目錄結(jié)構(gòu)要求src、include、lib、platformio.ini通過向?qū)?chuàng)建能保證初始文件齊全。具體操作點擊左側(cè) PlatformIO 圖標(biāo)打開面板。選擇PIO Home - Open然后點擊New Project。項目名稱填好Board 選擇你的開發(fā)板型號。比如 ESP32 Dev Module對應(yīng)的 board ID 是esp32dev。Framework 選擇 Arduino 或 ESP-IDF根據(jù)自己的項目需求來。Location 填項目路徑。注意路徑里千萬不要有中文和空格PlatformIO 對這點要求很嚴格踩坑概率極高。創(chuàng)建完成后CLion 會自動加載平臺和工具鏈?zhǔn)状螘容^慢因為要下載編譯器、平臺包等這取決于你的網(wǎng)絡(luò)狀況。有耐心的等完就好不用中斷。2.4 首次索引的等待時間和常見觀察工具鏈全部就緒后CLion 會開始對項目做代碼索引。ESP32 工程的索引時間通常在 20 秒到 5 分鐘不等取決于工程復(fù)雜度。這里有個經(jīng)驗不要在這時候手動去改platformio.ini或刷新 CMake否則會觸發(fā)重復(fù)索引浪費大量時間。索引完成后你會注意到 CLion 的代碼高亮和補全明顯變得智能了。#include WiFi.h這種頭文件不再報紅Serial.begin(115200)也能正確跳轉(zhuǎn)到定義。如果你發(fā)現(xiàn)還是有很多紅色波浪線多半是 PlatformIO 插件沒有正確識別板級 SDK可以檢查一下當(dāng)前工程的 PlatformIO 環(huán)境是否已被 CLion 的 CMake 同步。具體在Settings - Build, Execution, Deployment - CMake里看有沒有生成對應(yīng)的 Profile一般會有類似PlatformIO Debug這樣的配置項。2.5 把已有 ESP32 工程導(dǎo)入 CLion如果你已經(jīng)有一個現(xiàn)成的 PlatformIO 工程目錄不需要重新創(chuàng)建。直接在 CLion 里選擇File - Open找到目錄下的platformio.iniCLion 會識別出這是 PlatformIO 工程并自動加載。這個過程中可能有短暫的文件系統(tǒng)掃描正?,F(xiàn)象。這里要特別注意如果工程里已經(jīng)存在sdkconfig文件CLion 加載時可能會有 CMAKE 緩存沖突。遇到這種情況把項目目錄下的build目錄或者是隱藏的.pio目錄刪除再重新加載即可。.pio目錄是 PlatformIO 的本地環(huán)境目錄刪了不會丟代碼只是需要重新編譯一次。3. 工程結(jié)構(gòu)、配置文件與實際開發(fā)要點3.1 platformio.ini 逐行拆解platformio.ini是整個工程的構(gòu)建總?cè)肟诶斫饬怂屠斫饬?PlatformIO 的模式。一個最基本的 ESP32 工程配置文件長這樣[env:esp32dev] platform espressif32 board esp32dev framework arduino monitor_speed 115200 upload_speed 460800其中platform指定平臺包board指定開發(fā)板定義framework決定用的是 Arduino 還是 ESP-IDFmonitor_speed是串口監(jiān)視器的波特率upload_speed是燒錄時的波特率。聽起來簡單但實際開發(fā)里這幾個參數(shù)有非常多講究。先說upload_speed。ESP32 默認燒錄波特率是 460800但在某些開發(fā)板上如果 USB 轉(zhuǎn)串口的芯片質(zhì)量一般或者線材太長這個速度會出現(xiàn)燒錄失敗。我自己遇到過用劣質(zhì)數(shù)據(jù)線連接 ESP32 開發(fā)板460800 下 50% 概率燒錄中途報錯把速度降到 115200 后一次通過。建議第一次拿到開發(fā)板或者換了一根新數(shù)據(jù)線時先 115200 燒錄一次確認通路再考慮提速。再說monitor_speed。這個值必須和你程序里Serial.begin()的參數(shù)一致否則監(jiān)視器里輸出的是亂碼。很多新手在這上面翻車不是代碼寫錯只是配置文件和程序不一致。3.2 多環(huán)境配置一套代碼編譯多種硬件PlatformIO 最強大的功能之一就是多環(huán)境配置。假設(shè)你的項目既支持 ESP32 開發(fā)板也要編譯一個基于 ESP32-S3 的版本??梢赃@樣寫[env:esp32dev] platform espressif32 board esp32dev framework arduino monitor_speed 115200 [env:esp32s3] platform espressif32 board esp32-s3-devkitc-1 framework arduino monitor_speed 115200 build_flags -DCUSTOM_BOARD_S31這樣在 CLion 里你就能看到兩個 Run Configuration分別對應(yīng)兩種環(huán)境。編譯哪個就選哪個代碼里可以用#ifdef CUSTOM_BOARD_S3做條件編譯一套代碼維護多塊板子非常方便。我在實際項目中用過這種方案管理四塊不同的 ESP32 系列板子沒有出過問題。3.3 自定義分區(qū)表和 flash 大小ESP32 的 flash 分區(qū)默認是 4MB如果你的程序比較大或者要用 OTA那默認分區(qū)表就不夠用了。PlatformIO 里可以通過board_build.partitions來指定分區(qū)表文件。比如[env:esp32dev] platform espressif32 board esp32dev framework arduino board_build.partitions huge_app.csv board_build.flash_size 8MBhuge_app.csv需要放在工程的partitions目錄下內(nèi)容類似# Name, Type, SubType, Offset, Size, Flags nvs, data, nvs, 0x9000, 0x5000, otadata, data, ota, 0xe000, 0x2000, app0, app, ota_0, 0x10000, 0x400000, app1, app, ota_1, 0x410000, 0x400000, spiffs, data, spiffs, 0x810000, 0x7F0000,這里有一個很容易出問題的點分區(qū)表的偏移量和大小必須遵循 flash 扇區(qū)對齊規(guī)則ESP32 的扇區(qū)大小通常是 4KB所以所有地址都應(yīng)該是 0x1000 的整數(shù)倍。隨便寫一個不對齊的地址燒錄時不會報錯但運行起來會燒錄到錯誤的位置導(dǎo)致程序無法啟動。我建議直接參考官方默認分區(qū)表改不要從零自己寫。3.4 lib 目錄和庫管理PlatformIO 的工程里lib目錄是存放項目私有庫的地方。PlatformIO 會自動搜索這個目錄下的代碼并編譯鏈接到最終固件里。個人經(jīng)驗是凡是復(fù)用可能性超過一次的代碼都放進lib里而不是直接丟到src下。這樣后期維護、移植都很方便。此外 PlatformIO 也支持從platformio.ini里用lib_deps引入第三方庫lib_deps bblanchon/ArduinoJson knolleary/PubSubClient這里要注意版本兼容問題。比如某些庫的最新版本依賴 ESP32 的新的內(nèi)核 API如果你的 Arduino 框架版本太舊編譯時會報一堆 undefined reference。我建議在lib_deps里固定版本號用指定比如bblanchon/ArduinoJson6.21.3。CLion 的 PlatformIO 插件在加載庫后會自動索引庫內(nèi)頭文件補全和跳轉(zhuǎn)都是可用的這比 Arduino IDE 里手動管理庫要清爽太多。3.5 在 CLion 中寫代碼的體驗設(shè)置用 CLion 寫 ESP32 代碼有幾個設(shè)置建議提前調(diào)好Settings - Editor - Inspections里把 Included file is not found 的報錯等級從 Error 降為 Warning。雖然正常情況下 PlatformIO 插件能解析全部頭文件但偶爾網(wǎng)絡(luò)波動或工具鏈未完全下載時誤報會影響心情。開啟Settings - Build, Execution, Deployment - CMake - Auto-reload。這樣修改了platformio.ini或者CMakeLists.txt后CLion 能自動同步構(gòu)建定義。還有一個個人習(xí)慣我用 CLion 處理 ESP32 代碼時一定會打開自帶的 File Watcher 功能配合clang-format統(tǒng)一代碼風(fēng)格。畢竟 ESP32 工程通常都是多人協(xié)作或者自己長期維護代碼風(fēng)格的統(tǒng)一能省掉很多 review 成本。4. 編譯、燒錄與串口調(diào)試的完整實測流程4.1 編譯過程的底層邏輯和界面操作在 CLion 里點擊右上角的 Build 按鈕實際觸發(fā)的是pio run命令。CLion 的 PlatformIO 插件會在后臺把編譯輸出完整地捕獲到 IDE 的 Build 窗口里。你看到的輸出格式和命令行下運行 PlatformIO 幾乎一模一樣包括每個編譯單元的編譯進度和警告信息。首次編譯會比較慢動輒幾分鐘因為需要全量編譯 SDK 和第三方庫。第二次開始PlatformIO 會啟用增量編譯只編譯變動的文件通常幾秒鐘到幾十秒就能完成。我在實際項目里優(yōu)化過編譯速度最重要的一條經(jīng)驗是不要修改 SDK 相關(guān)的頭文件一旦觸發(fā)整個依賴樹都會重建。CLion 里還可以快速切換 Debug 和 Release 構(gòu)建類型。在platformio.ini里加build_type debug這樣編譯時帶-g調(diào)試參數(shù)固件體積變大但配合調(diào)試器可以打斷點。如果不加默認是沒有優(yōu)化和調(diào)試信息的燒錄后只看到運行現(xiàn)象無法單步調(diào)試。4.2 燒錄操作CLion 按鈕和命令行兩種方式燒錄在 CLion 里非常簡單。Run Configuration 選擇 ESP32 Dev Module Upload點擊 Run 按鈕插件會調(diào)用pio run -t upload完成燒錄。過程包括編譯、將固件寫入開發(fā)板指定地址、自動復(fù)位芯片日志里會顯示燒錄進度條。如果你覺得圖形界面不夠直接或者需要在自動化腳本里完成燒錄CLion 里也可以直接打開 Terminal 窗口輸入命令pio run -t upload終端窗口在 CLion 里集成得非常好默認會加載 PlatformIO 的環(huán)境變量不會有找不到pio命令的問題。我的習(xí)慣是第一次燒錄用圖形化按鈕驗證整個鏈路沒問題后面重復(fù)燒錄直接用快捷鍵調(diào)用 Upload效率更高。4.3 串口監(jiān)視器的正確打開方式CLion 的 PlatformIO 插件提供了串口監(jiān)視器入口就在 Run Configuration 里的 Monitor 選項。點擊后插件會打開一個內(nèi)置的串口終端顯示開發(fā)板的串口輸出。需要注意的點串口監(jiān)視器打開后開發(fā)板會進入復(fù)位狀態(tài)或開始運行程序輸出會實時刷新到終端窗口。如果波特率設(shè)置不對會出現(xiàn)大量亂碼。重新設(shè)置monitor_speed后需要停止監(jiān)視器再重新打開才生效。在某些 Windows 系統(tǒng)上打開監(jiān)視器前需要關(guān)閉其他占用串口的程序否則會報出 port busy 錯誤。我實際用下來的體驗是CLion 的串口終端比 VS Code 終端更像一個“正經(jīng)終端”支持色彩輸出、時間戳還支持向上翻頁。對于 ESP32 這種經(jīng)常要打日志來排查問題的場景這個終端的表現(xiàn)足夠可靠。4.4 串口權(quán)限與驅(qū)動的坑位Linux 和 macOS 下開發(fā) ESP32最常見的坑是串口權(quán)限不足。Linux 下需要把當(dāng)前用戶加入dialout組sudo usermod -a -G dialout $USER然后重新登錄否則燒錄時會報Permission denied或直接找不到端口。macOS 下一般不需要額外配置但部分山寨版 ESP32 開發(fā)板的 USB 芯片驅(qū)動需要手動安裝。在 Windows 下比較常見的問題是串口驅(qū)動未安裝成功。設(shè)備管理器里如果看到帶感嘆號的 USB 設(shè)備多半是 CH340 驅(qū)動沒裝好。手動更新驅(qū)動選中驅(qū)動文件夾即可。也有部分板子用的是 CP2102 芯片驅(qū)動同樣需要單獨安裝。4.5 一個完整燒錄日志的現(xiàn)場解析我挑一條典型的燒錄日志來給你拆解方便你知道每一步是在干什么。燒錄時輸出會包含這些內(nèi)容Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino) ------------------------------------------------------------------------------------------------- Verbose mode can be enabled via -v option CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html PLATFORM: Espressif 32 6.3.2 HARDWARE: ESP32Dev 240MHz, 320KB RAM, 4MB Flash DEBUG: Current (cached) debug configuration: esp-prog第一段說明當(dāng)前的平臺和板卡定義加載情況如果這里出現(xiàn)了 unknow board 或者不認識的 framework那么這個環(huán)境本身就有問題了。再看編譯和燒錄Compiling .pio/build/esp32dev/src/main.cpp.o Linking .pio/build/esp32dev/firmware.elf Building .pio/build/esp32dev/firmware.bin Writing Microcode to /dev/cu.usbserial-0001 Uploading firmware...最后一步Writing Microcode出現(xiàn)說明串口已經(jīng)被正確識別。如果你卡在Connecting...這一步大概率是板子沒有正確進入下載模式。按住開發(fā)板上的 BOOT 鍵再短按 EN 鍵復(fù)位松開 BOOT 鍵基本都能進入燒錄模式。市面上常見的 ESP32 Dev Module 基本都是這個操作。5. 調(diào)試、日志分析與無線燒錄的進階技巧5.1 使用 Debug 模式進行單步調(diào)試PlatformIO 支持通過 OpenOCD 和 JTAG 接口對 ESP32 進行硬件調(diào)試。當(dāng)然這需要額外的調(diào)試器硬件比如常見的某款 USB 轉(zhuǎn) JTAG 調(diào)試器。在 CLion 里運行配置可以選擇Debug插上調(diào)試器后CLion 會自動連接并啟動調(diào)試器界面。硬件調(diào)試的實際作用非常大。比如你懷疑一個全局變量被某個中斷意外改寫用斷點觀察變量值變化是最快的方式比到處打日志高效十倍。我自己在調(diào)試 WiFi 重連邏輯時就是靠硬件斷點直接定位到棧溢出這在純?nèi)罩灸J较潞茈y查出來。缺點也有需要額外硬件且對開發(fā)板連線有要求。對于大多數(shù) ESP32 入門項目來說日志調(diào)試已經(jīng)夠用。硬件調(diào)試建議留到排查內(nèi)存崩潰、棧溢出這一類疑難問題時再啟用。5.2 日志分級和調(diào)試輸出優(yōu)化ESP32 底層的 ESP-IDF 自帶一套日志系統(tǒng)在 Arduino 框架下可以通過log_e、log_w、log_i這幾個宏輸出分級日志。PlatformIO 默認會把所有級別的日志都編譯進固件建議在正式發(fā)布版本里關(guān)閉 Debug 級別的日志build_flags -DCORE_DEBUG_LEVEL3數(shù)值 3 代表只輸出 INFO 級別以上數(shù)字越小打印越少。生產(chǎn)環(huán)境一般設(shè)置為 1 或 2只保留 WARNING 和 ERROR。Debug 版本保持完整日志輸出方便排查問題。這個參數(shù)的調(diào)整在 CLion 的代碼解析中也會同步更新不會出現(xiàn)日志代碼被誤報為未使用的情況。5.3 無線燒錄OTA的集成經(jīng)驗ESP32 支持 OTA 升級PlatformIO 也提供了相應(yīng)的上傳方式。如果你在開發(fā)室內(nèi)測試OTA 比串口燒錄方便得多——不用每次都插拔數(shù)據(jù)線。在platformio.ini里配置 OTA 信息[env:esp32dev_ota] platform espressif32 board esp32dev framework arduino upload_protocol espota upload_port 192.168.1.100 upload_flags --authpassword這樣在 CLion 的 Run Configuration 中選擇這個環(huán)境點 Upload 就能直接通過 WiFi 燒錄。OTA 的底層原理是把新固件寫入 flash 的 OTA 分區(qū)所以分區(qū)表里必須有 OTA 分區(qū)否則會報錯。另外OTA 燒錄對網(wǎng)絡(luò)穩(wěn)定性要求較高中途斷開會導(dǎo)致設(shè)備變磚務(wù)必保證開發(fā)板和電腦在同一局域網(wǎng)的信號良好區(qū)域。這里要提醒一個隱患OTA 失敗時ESP32 會自動回退到上一個可用固件前提是分區(qū)表里配置了兩個 app 分區(qū)。如果你只配置了一個 app 分區(qū)OTA 失敗后只能重新用串口燒錄恢復(fù)。所以我建議所有需要 OTA 的工程都設(shè)置 app0 和 app1 兩個分區(qū)。5.4 內(nèi)存分析和棧溢出的預(yù)防性檢查ESP32 的內(nèi)存有 520KB SRAM聽起來不小但 WiFi、BLE 協(xié)議棧本身要吃不少內(nèi)存。在實際開發(fā)中內(nèi)存問題是最常見的崩潰原因。PlatformIO 編譯時會打印固件的內(nèi)存占用情況你可以觀察RAM: [ ] 55.2%這一行了解當(dāng)前固件占用多少內(nèi)存。如果接近 80% 以上就要考慮優(yōu)化策略了。優(yōu)先檢查是否有大數(shù)組直接分配在棧上比如uint8_t buffer[4096];這種寫法強烈建議改成static或者用malloc動態(tài)分配。另一個常見問題是 FreeRTOS 任務(wù)棧大小設(shè)置過大或過小。過大浪費內(nèi)存過小會導(dǎo)致棧溢出通常表現(xiàn)為隨機重啟或輸出Guru Meditation Error。出現(xiàn)這個錯誤信息時把對應(yīng)任務(wù)的棧大小調(diào)大 200~400 字節(jié)再測試。5.5 使用 CLion 的靜態(tài)分析和代碼檢查CLion 自帶的 Inspection 功能在嵌入式開發(fā)中非常有用。它能檢查未使用的變量、潛在的空指針引用、錯誤的類型轉(zhuǎn)換等問題。我每次寫完一段代碼都會先跑一遍 Inspect Code大部分低級錯誤都能被提前發(fā)現(xiàn)。比較特別一點的是CLion 對 C11/C14 特性的支持非常全面你在 ESP32 工程里可以使用std::unique_ptr、std::function、Lambda 表達式等現(xiàn)代 C 語法編譯和補全都完美支持。比起 Arduino IDE 里寫老式 C 風(fēng)格代碼的體驗CLion 是降維打擊。另外CLion 的Refactor - Rename全局重命名功能在嵌入式項目里也非常驚艷。當(dāng)你想把一個變量從temp改成temperature_celsius它會自動檢查所有引用位置安全地完成重命名。這種功能在純命令行或簡易 IDE 中幾乎是不可能做到的。6. 常見問題速查與避坑手冊6.1 編譯階段的高頻報錯與解決方案報錯內(nèi)容根本原因解決方案fatal error: WiFi.h: No such file or directoryframework 選錯或工具鏈未完整安裝確認platformio.ini里framework arduino刪除.pio目錄重新構(gòu)建undefined reference to setup/loop入口函數(shù)缺失或文件名不在 src 下確保代碼文件在src目錄且包含setup()和loop()XTENSA compiler not found工具鏈下載不完整在 PlatformIO 面板執(zhí)行pio upgrade或重新安裝平臺包error: unknown type name uint8_t頭文件順序或缺失基礎(chǔ)頭文件文件開頭添加#include Arduino.h或#include stdint.hCMake Error: The current CMake cache is corruptedCLion 緩存與 PlatformIO 沖突刪除項目下的cmake-build-*目錄重新加載 CMake 項目這上面最值得說的是第一個WiFi.h not found。看起來是頭文件路徑問題實際很可能是因為你之前用 Arduino IDE 裝過不同版本的 ESP32 內(nèi)核PlatformIO 默認下載了另一套獨立工具鏈。這兩套環(huán)境互不干擾但你如果在platformio.ini里指定了額外的 include 路徑指到了 Arduino IDE 的安裝目錄就會撞車。6.2 燒錄和串口階段的問題排查燒錄報錯千奇百怪但萬變不離其宗。我把從實際經(jīng)驗里提煉的高頻問題記錄如下燒錄時報Failed to connect to ESP32: Timed out...開發(fā)板沒進入下載模式。按住 BOOT 再復(fù)位或者檢查數(shù)據(jù)線是否支持數(shù)據(jù)傳輸。很多 USB 線只有電源線沒有數(shù)據(jù)線會直接導(dǎo)致板子有電但無法通信。燒錄時報Serial port busy串口被其他程序占用。最常見的是 Arduino IDE 的串口監(jiān)視器沒有關(guān)閉或者 VS Code 的 PlatformIO 插件也打開了同一個串口。把其他程序占用釋放即可。串口輸出全是亂碼monitor_speed和Serial.begin波特率不一致。統(tǒng)一改成 115200。有一點要注意ESP32 的 ROM 啟動日志會在上電瞬間通過 74880 波特率輸出幾行亂碼然后恢復(fù)正常這是正常的不需要處理。打開串口后開發(fā)板重啟很多 ESP32 開發(fā)板使用 DTR/RTS 線自動復(fù)位打開串口時會產(chǎn)生電平跳變導(dǎo)致芯片復(fù)位。在platformio.ini中關(guān)閉硬件流控即可monitor_rts 0 monitor_dtr 06.3 運行期莫名其妙的復(fù)位問題程序燒錄成功但運行不久就自動重啟這種情況非??简?zāi)托?。日志里如果有Guru Meditation Error: Core 0 panic或者Backtrace信息那是內(nèi)存錯誤導(dǎo)致的。常見的幾種原因和對應(yīng)排查方向現(xiàn)象可能原因排查方法隨機重啟日志顯示棧溢出FreeRTOS 任務(wù)棧太小把任務(wù)創(chuàng)建時的棧大小參數(shù)調(diào)大運行幾分鐘后死機內(nèi)存泄漏檢查malloc后是否free或者用heap_caps_get_free_size()監(jiān)控可用內(nèi)存類似的代碼之前好現(xiàn)在不行flash 壽命或電源不穩(wěn)換數(shù)據(jù)線檢查電源模塊輸出能力一開 WiFi 就重啟WiFi 初始化內(nèi)存不足把初始化放在任務(wù)里并提高任務(wù)棧大小避免占用主循環(huán)棧我在做某個跨平臺智能家居項目的時候遇到過一種特別隱蔽的崩潰代碼在本地編譯運行正常但客戶反饋每天隨機死機。最后通過 CLion 的硬件調(diào)試器和內(nèi)存斷點定位到是某個字符串拼接操作越界污染了相鄰堆內(nèi)存。這類問題如果不借助調(diào)試工具純靠打日志幾乎不可能排查。6.4 Windows 驅(qū)動特殊問題Windows 用戶最容易碰到的一種情況是設(shè)備管理器里能看到 USB 設(shè)備但 CLion/PlatformIO 的串口列表里就是找不到。絕大多數(shù)是因為 USB 驅(qū)動被系統(tǒng)自動替換成了通用驅(qū)動。解決方法是在設(shè)備管理器里手動更新驅(qū)動選擇“從計算機的設(shè)備驅(qū)動程序列表中選擇”然后指向 CH340 或 CP210x 廠商驅(qū)動。裝完以后重新插拔開發(fā)板串口就會正常出現(xiàn)。還有一個冷門問題老版本的 Windows 10 上某些 USB 轉(zhuǎn)串口芯片在睡眠喚醒后失效。出現(xiàn)這種情況把電腦重啟或者禁用再啟用設(shè)備即可。這不是開發(fā)工具的問題是操作系統(tǒng)和芯片驅(qū)動的兼容性 Bug不用糾結(jié)。6.5 網(wǎng)絡(luò)波動引起的 PlatformIO 環(huán)境問題PlatformIO 需要聯(lián)網(wǎng)下載工具鏈和第三方庫如果你的網(wǎng)絡(luò)經(jīng)常抖動很容易出現(xiàn).pio目錄不完整的情況。典型表現(xiàn)在代碼沒有語法錯誤編譯卻報出各種冗長的內(nèi)部錯誤或者某個第三方庫找不到頭文件。此時不要反復(fù)試編譯了正確做法是刪除項目下的.pio目錄。打開 CLion 的 PlatformIO 面板執(zhí)行pio system prune清理所有緩存。重新打開工程讓 PlatformIO 重新下載和配置環(huán)境。這一套操作會花一些時間但能解決 80% 的環(huán)境詭異問題。我在公司同事的設(shè)備上做過多次這個流程屢試不爽。7. 用 CLion 做 ESP32 開發(fā)以來的幾點深刻體會7.1 為什么我會長期停留在這套組合用了幾個月后我已經(jīng)把日常主力開發(fā)環(huán)境徹底固定在了 CLion PlatformIO。不是因為它是最酷的方案而是它確實幫我省了最多的時間。做一個簡單對比以前用 Arduino IDE 改一個頭文件全量編譯可能要等半分鐘到一分鐘CLion 配合 PlatformIO 的增量編譯往往幾秒搞定。以前在 VS Code 里遇到那個區(qū)分大小寫的頭文件路徑解析問題偶爾會出現(xiàn)CLion 基本不犯這種錯。還有日常開發(fā)的“心流”體驗。CLion 的代碼提示不是死板的標(biāo)簽提示而是能結(jié)合上下文給出真正合理的推薦。你輸入WiFi.它會直接列出當(dāng)前版本的 WiFi 庫中存在的所有方法不用翻官方文檔。這種體驗對開發(fā)效率的幫助非常明顯。7.2 我最受用的一個隱藏功能分享一個不一定寫在官方教程里的用法在 CLion 中按兩次 Shift打開全局搜索直接搜索platformio.ini里的變量名。比如你突然想看看代碼里哪些地方用到了UPLOAD_SPEED這個配置宏全局搜索可以跨文件定位包括 SDK 配置文件里的定義。這比單純用 grep 找要快得多。另一個隱藏功能是CLion 的 Run Configuration 支持對同一個 Environment 設(shè)置多個啟動項。我可以配置一個 Upload 和一個 Monitor 的啟動項分別綁定不同的快捷鍵。這樣燒錄完按一下 Monitor 的快捷鍵就能快速看串口輸出不用每次點菜單。7.3 建議的下一步方向如果你已經(jīng)跑通了這套環(huán)境下一步可以嘗試把這些經(jīng)驗整合到自己的項目工程化流程里。比如用腳本批量燒錄多塊開發(fā)板、在 CI 流程里調(diào)用pio run做自動構(gòu)建、或者用 PlatformIO 的 Remote 功能配合 CLion 遠程開發(fā)樹莓派上的邊緣節(jié)點。這個組合的天花板遠比大多數(shù)人預(yù)期的高而你現(xiàn)在已經(jīng)站在了正確的起點上。關(guān)于 CLion PlatformIO 開發(fā) ESP32 的所有關(guān)鍵內(nèi)容到這里就分享完了。如果你在搭建過程中遇到其他問題最有效的解決路徑是先把platformio.ini和編譯日志完整看一遍90% 的問題都會在里面露出端倪。開發(fā)嵌入式項目本來就是不斷和設(shè)備、工具鏈斗智斗勇的過程穩(wěn)住心態(tài)一步步排查這套環(huán)境會成為你長期順手的伙伴。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
伊人五月成人| 亚洲色情网站| 丁香六月无码| 激情影院内射| 99热综合在线| 久久久久久久久久久月丁| 91狠狠综合久久久| 亭亭玉月丁香| 强伦轩人妻一区二区电影| 99热免费精品热久久66| 九洲一级A片| 草榴视频网| 日韩av一区二区在线/日产精品久久久 | 深爱激情五月天| 激情com| 97香蕉人人在线观看| 久久九色| 天天插天天干| 99在线精品视频| 色天堂在线| 婷婷五月天亚洲激情戏精品| 激情综合色五月六月婷婷| 久9热视频| 激情综合网激情五月俺也去| 婷婷色色亚洲| 67194线路二在线观看| 五月久久婷婷丁香| 亚洲四色五月| 91精品91久久久中77777久久玖玖九九 | 狼人婷婷综合| 蜜乳人妻一区二区三区| 欧美精品A片一区在线观看| 婷婷5月久久综合网站| 日本片日本片祼观看网站在线看中文版网页在线看| AV电影在线播放| 另类激情五月在线视频欧美| 99综合网| 丁香五月播播| 99热网站| 日韩二区搞逼插逼毛片| 色播激情婷婷| 激情丁香久久久久久| 久久婷婷五月综合色欧美| 九九色逼| 狠狠精品干练久久久无码中文字幕 | www.日日日.com| 99热99色| 99精品视频在线| 五月丁香 六月婷婷a| 色婷婷久久综合| 性欧美日本| 婷婷五月视频| 激情九色| 婷婷丁香熟妇综合网| 97婷婷色| www,黄色在线,con| 婷婷终合色图| 思思99热热热99| 色婷婷五月综合| 深夜男女福利刺激影院一区完整| 另类图片激情五月天| 可以免费看av网站| 夜丁香综合| 欧美成人五月天| 狠狠色丁香久久婷婷综合五月| 欧美另类五月激情| 综合久久高清| 亚洲亚洲人成综合网络| 97色图片中文字幕视频在线观看 | 婷婷五月天97干| 国产69久久久欧美黑人A片 | 激情五月天在线观看色婷婷| 在线A色| 亚洲第一精品成人999久久精品| 婷婷色成人| 墨西哥毛片内射精| 综合婷婷| 五月丁香六月婷婷综合网站| 丁香五月香蕉| 97热九九| 五月天中文网| se99视频| 91日综合欧美| 亚洲爱爱无码婷婷色五月| 夜夜干夜夜操| 午夜无码熟熟妇丰满人妻 | 色情开心五月| 中文不卡一二三区| 亚洲色婷婷| 无遮挡国产高潮视频免费观看 | 五月 激情视频| 91色综合| 欧美综合激情丁香五月六月婷| 六月婷婷激情图片| 久久久色情| yellow视频在线观看91| 丁香五月开心五月激情| 日本久久99| 亚洲成人av在线观看| 丁香五月婷婷偷拍| 婷婷开心久久| 日本无va视频| 色婷婷欧美| 天堂成人A片永久免费网站| 97碰91| 九九99在线免费在线观看视频| 色婷婷在线综合色播网| 婷婷丁香六月| 色色色干| 婷婷情色五月天| 秋霞网在线观看理论91| av九九| 99热很操老逼| 狠狠干狠狠色| 99色精品| 天天综合天综合久久网| 激情小说五月丁香在线视频观看视频| 99精品综合| 国产亚洲精品AAAAAAA片| 字母不卡码人逼| 五月婷成人| 丁香五月欧美婷婷综合| 99色热| 激情五月无码| 激情五月婷婷五月| 97极品在线| 久久99热 这里有精品| 丁香五月AV| 婷婷五月天天| 人人综合久| 欧美三级视频| 久久人妻乱子伦| 色婷婷六月| 99re在线播放| 婷婷五月激情热播| 99热精品在线| 国产免费一区二区在线A片视频| 97婷婷五月天| 青青草婷婷五月天| 色香五月天| 色婷婷婷婷| 国产成人AV在线播放| 久久深爱激情网| 丁香五月激情网| 五月婷婷深深爱| 六月婷婷九月丁香亚洲综合| 九色99视频| 91操色| 六月丁香啪啪啪| 伊人大香久久| 人草人人| 天堂综合久| 婷婷va| 影音先锋美国A| 久久婷婷成人视频| AAA久久| 99热在线精品播放| 999热在线视频| 精品99视频| 九九在线这里只有精品视频| 婷婷五月六月| 五月天激情婷婷| 超碰丁香五月| 成年人丁香五月| 丁香五月玖玖| 五月激情综| 97色五月婷婷在线| 这里只有精品网| 婷婷激情久久| 五月天开心激情综合网| 色九九九综合| 色爱综合网| 狠狠爱婷婷色| 久久hd| 五月天久久网站| 五月亭亭狠狠| 六月婷婷七月丁香| 狠狠做深爱婷婷久久综合一区| 久久九九国产| 狠狠色婷婷777| 国产欧美第五十五页| 色播婷婷五月天| 香蕉婷婷色五月| 亚洲成人av在线播放| www.97干视频| 色偷偷五月天| 五六月丁香激情视频| 99精品无码| 久久网日本| 伊人婷婷五月天av| 婷婷五月天黄色| 五月天综合在线| 超碰av在线| 五月丁香狠狠爱| 色九区| 天天插天天很| 91丁香| 伊人婷婷五月天| 婷婷色色网| 婷婷天堂站| www.夜夜操.con| 五月婷婷涩涩爱| 丁香婷婷在线| 综合色五月| 激情综合久久| 色视频五月天| 五月婷婷久久爱| 激情涩涩网| 激情98色婷婷五| 深爱激情丁香五月| 九九国产视频| 超级碰碰碰久久网站| 色婷婷五月天在线观看| 深爱五月综合网| 婷婷丁香日韩五月| 9有码中文| 99爱视频精品| 久色大香蕉| 激情久久五月天| 欧美久久五月婷婷| 嫩草视频观看| 中文字幕免费高清电视剧| 这里只有精品视频一区| 五月色综合网欧美网| 国产精产国品一二三在观看| 青青草轻轻操| 激情综合色五月丁香六月亚洲| 国产综合丁香五月天| 久操人妻| 五月丁香六月激情欧美综合| 久久人妻乱子伦| 亚洲免费电影2| 激情六月综合| 五月丁香成人视频| 五月丁香久久呀| 亚洲超级碰| 噜噜在线| 五月婷婷丁香综合| 人人摸人人搞| 五月婷婷影视| 丁香六月 婷婷六月| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 狠狠操狠狠插| 国产色五月| 草草视频91| 久久99久久99www| 99热精品在线| 久99视频在线观看| 99视频只有精品| 九九视频精品在线免费| 六月丁香啪| 大香蕉九九热| 9一精品视频观看| 一起草av| 久久五月丁香| 色婷婷小说| 99久久性爱| 欧洲激情五月天婷婷| 无码yw| 五月丁香六月综合图| 久久色情| 色五月首页| 亚洲综合另类| 久久久久久97| 五月天丁香成人社| 操日视频| 婷婷综合97| 婷婷丁香五月亚洲| 99综合色| 亚洲男女激情| 婷婷五月天伊人| 色婷婷色人人射| 99爱免费在线观看| 激情综合网,婷婷| 久久综合性| 婷婷久久免费| 爆乳熟女一区二区三区爆乳| 色婷六月| 天天综合网91| 中文字幕永久在线| 天天拍夜夜撸| 美女要搞搞天天搞搞搞网站| 九九视频精品在线免费| 深爱激情久久| 婷婷丁香色无五月| 久久美女五月天| 天天色宗合| 区区欧美你爱| 五月色婷婷综合| xxx.色婷婷| 狠狠搞亚洲| av一区免费看| www.91五月| 国产偷人爽久久久久久老妇APP| 99操久久| 六月婷婷中文字幕| 香蕉AV777XXX色综合一区| 亚洲超碰在线| 五月成人丁香av91| Y11111111111少妇电影院| 玖玖九九9999在线观看视频精品| 99久久.www| 九九久久高清| 激情综合五月丁香| 99精品这里只有免费视频| 人人人人人人人人人草| 99热成人在线| 91干在线| AA丁香综合激情| 一本大道嫩草AV无码专区| 国产乱子轮XXX农村| 无码AV免费精品一区二区三区 | 五月丁香婷婷婷婷综合网| 久久午夜理论| 色色性爱视频| 亚洲激情五月| 九九九激情网| 久久久久亚洲AV无码网影音先锋| 久思思久视频| 99热这里只有的精品视| 婷婷五月综合色拍| 专区无日本视频高清8| 无码日本精品XXXXXXXXX | 任你躁XXXXX麻豆精品| 亚洲AV久久久久久久久久久久久久久久| 婷婷五月天丁香综合网| 免费婷婷| 婷婷色色网| 激情深爱综合网| 日亚二欧美| 五月天婷婷激情小说电影| 大香蕉220| 天天操天天国产三级片处女学生妹| 日韩啊啊啊| 人妻无码精品一区| 狠狠狠狠狠狠草| 亚洲无码www| 快乐激情五月色婷婷| 婷婷丁香五月天色区| 啄木鸟丝袜美女福利视频| 99资源在线视频| 综合网色| 91精产一区三区免费观看| .操區COm| 99久超碰| 丁J香六月首页| 久久伊人大香蕉| 激情亚洲婷婷六月| 99在线精品视频在线观看| 秋霞AV吧| 俺来也综合网精品一区| 99热精品在这里| 日本婷婷| 激情色色色| 日本欧美成人片AAAA| 吾爱AV导航| 好好干Av| 婷婷五月天天爽| 九九视频在线观看视频6 | 成人网页在线观看| 精品九九视频| 婷婷五月婷婷| 久久婷婷五月综合成人d啪| 婷婷舔| 五月丁香啪啪综合| 九九99偷拍视频| 五月丁香日本在线视频观看| 97色啪| 牛牛澡牛牛爽| 五月熟妇婷婷久久| AA丁香综合激情| 色天堂97| 91久久久久久久久久18| 最新精品视频99| 玖玖在线视频| xxxx久| 日本婷婷色| 国产99热在线看| 欧美色频| 中文字幕在线不卡视频| 久久久精品人妻录| 九月丁香久久网| 激情婷婷五月久久| 丁香九月婷| 9 1大香蕉| 久婷婷久草| 天天狠天天叉| 99久久99九九九99九他书对| 伊人综合婷婷| 激情综合网激情五月丁香| www.夜夜| 久热久色| AV电影在线播放| 九九热99视频| 五月天成人综合| 婷婷五月丁香超碰| 日韩精品一区二区亚洲AV观看 | 99re8这里只有精品99re8热视频| 婷婷.com| 99热色在线精品| 大地9中文在线观看免费高清 | 丁香综合伊人AV| 99自拍视频在线| 天天曰夜夜爽| 亚洲午夜AV| 九九久久99| 色~性~乱~伦~噜| 4399高清无码视频| 日本狠狠干| 六月丁香婷婷色狠狠久久| 精品久久久人妻| 婷婷五月天性爱视频| 激情婷婷五月天在线观看| 色五月情| 婷婷色丁香六月| 九九九激情网| 深爱激情综合网| 丁香花婷婷五月天| 久久色天堂| 久久99网站| www.婷婷五月| 五月综合在线婷婷图片| 亚洲av电影在线| 亚洲成人人人操| 日韩成人综合| AV在线观看网站| 亚洲免费看片| 丁香婷婷综合激情五月色| 日韩狠狠色婷婷| 少妇人妻人伦A片| 五月丁香久久久| 99re8热精品免费视频| 色欲天天综合| 色天堂A| 日本精品99| AV色五月婷婷| 4438亚洲欧美| 婷婷 色 丁香 夜| 97五月婷婷| 夜夜 操无码| 思思热99er在线视频| 国精产品一区一区三区免费视频| 婷婷丁香人妻天天久久| 在线观看中文字幕亚洲| 欧美成人精品A片免费一区99| 天天做天天要天天爽| 久热99中文字幕| 色七七色九九| 婷婷五月天成人五月天| 无码字幕中文| 热久久91| 99re这里有精品手机在线| 操b视频在线观看一区二区| 超碰99资源站| 人妻在线中文字幕久久| 婷婷玖玖五月天| 五月天激情小说| 婷婷五月色丁香在线看| 婷婷丁香激情综合色情| 亚洲成人影视在线| 大香蕉久艹| 五月婷婷久久综合| 碰97久久| 江苏少妇性BBB搡BBB爽爽爽| 五月丁香六月婷| 五婷婷六月合| 久久色五月天| 潘金莲AAAAAAAAAA| 激情九月婷婷| 亚洲综合丁香五月天| 无码啪啪| 操婷婷久久| www.久久久久| 激情五月天激情五月天| 色色婷五月天| 亚洲天堂99| 91丨九色丨首页| 第四色激情网| 久久婷婷成人综合色怡春院| 99在线观看精彩视频| 夫妻超碰在线| 疯狂做受XXXX高潮A片| 色婷另类| 深爱婷婷丁香五月激情| 五月天激情小说电影| 九九人人看| 99婷婷精品推荐在线视频| 日日爽夜夜爽| 人人人人人人人草| 日韩成人网站精品久久大全| 亚洲欧洲国产精品| 午夜成人在线免费视频| 激情五月四色| 亚洲精品V天堂中文字幕| 九九精品视频免费在线| 婷香狠狠爱五月| 极品人妻VIDEOSSS人妻| 婷婷丁香色五月| 日本色视| 午夜色丁香| 丁香六月中文| 天天日天天添| 亚洲五月婷| 99啊精典免费视频| 激情五月瑟瑟| 高清免费在线视频| www.金莲av| 五月婷婷色| 无码人妻激情| 中文字幕综合| 99ri精品在线| 五月激情综合网| 婷婷五月天午夜激情影院| 影音先锋日本三级资源| 熟妇无码乱子成人精品| 色99在线| 开心五月天激情网| 天天操无码| 丁香五月婷婷激情中文| 天堂A∨在线| 天堂爱啪啪| 丁香五月婷婷激情完整版| 激情图片亚洲| 99热xx| 亚洲九N| 成人做爰高潮A片免费视频| 国产 亚洲 在线| 色婷婷综合久久久久| 精品爆操| 14色综合婷婷| 91碰| 五月丁香人妻| 99热免费观看| 欧美搡BBBBB摔BBBBB| 五月婷婷色| 久久怡红院| 少妇真实被内射视频三四区| 超碰狠狠干99| 97操碰人免费| 丁香综合久久| 丁香六月婷婷久久高清| AV电影在线播放| 操99| 五月丁香成人| 亚洲激情.com| 天堂久久婷婷| 婷婷深爱五月天| 激情av| 国自产拍偷拍精品啪啪一区二区| 91919191919久久成人视频| 丁香五月天天久久综合小说| 九九久久污| 色婷婷五月影院| 国产日韩av片| 五月婷婷黄色| 婷婷成人综合五月| 激情六月天婷婷| 亚洲 视频 导航 一区| 337p大胆噜噜噜噜噜91Av| 婷婷五月69| 五月丁香WWW| 婷婷丁香综合成人| 婷婷五月丁香欧洲| 亚洲激情综合| 97五月婷| 婷婷97碰碰| 亚洲va在线| 亚洲欧美999| 97热在线精品| 天天干天天干天天干天天干天天| 狠狠色噜噜狠狠狠狠综合| 精品99视频| 色色色色网站| 丁香五月亚洲综合| 99自拍网| 久久开心五月婷婷| 99在线观看精品| www.色婷婷.com| 日韩欧美性爱| 五月激情啪啪| 99视频网| 啪啪91| 亚洲综合色成丁香五月色| www.激情com| 色情婷婷| 日本操B视频| 亚洲第一色色色色| 久久久这里有精品| 国产在线激情视频| 淫视馆AV在线| 欧美综合五月丁香六月婷| 丁香六月天| 综合激情五月天| 岛国午夜视频| 五月情丁香色| 日本99色| 五月婷婷啪啪啪啪| 丁香五月亚洲激情婷婷射| 99精品在线下载| 变态另类9| av高清无码| 狼人婷婷久久| 激情五月天激情综合网| 国产精品色色| 色五月婷婷激情基地| 色情五月丁香婷婷网| 人人摸人人| 九九亚洲天堂| 五月丁香日本一抹本| 五月天综合色| 婷婷伊人欧美| 日本在线视频手机播放五月婷| 婷婷五月天视频免费在线观看| 欧洲第一无人区观看| 99九九视频精彩在线| 色五月婷婷开心| 无码激情| 婷婷婷婷婷开心无码播放| 婷婷大香蕉| 久久久性爱网| 日本色爽| 色婷婷丁香AV综合| 五月丁香亚洲综合网| 亚洲超碰在线| 伊人久久大香蕉网| 亚洲va综合va国产va中文| 婷婷丁香红五月91C| 18av天堂| 日日夜夜天天综合| 婷婷99热| 日本在线视频播放91| 国产免费av网站| 人人干人人操人人摸人人做| 99热在线播放| 久久久久9999| 99自拍视频在线观看| 国产永久一黄| 久久婷婷五月天亚洲欧美| 天天操狠狠操| 婷婷五月天99综合网站| 亚洲婷婷开心五月| 久久久婷| 狠狠88综合久久久久噜噜噜| 99久久网站| 超碰在线观看99| 丁香蜜臀黄色婷婷五月天| 丁香六月婷婷社区| AV性爱网| 久久综合色五月| 能看的av网站| 99re热在线视频观看| 亚洲天天操| 婷婷六月天| 美女丁香五婷婷| 国产小网站| 激情五月综合婷婷| 日韩综合久| 婷婷五月天激情基地| www.深爱激情| 99这里只有精品| 影音先锋xfplay资源男人网| www色婷婷| 激情小说五月天社区丁香| 色婷婷影院| 综合激情伊人影视在线| 天天激情综合| 伊人久久艹| 精品婷婷五月天| 午夜天堂一区人妻| 五区毛片七区毛片| 丁香六月色| 婷婷伊人综合中文字幕| 激情视频网址| 桃色成人网| 五月天激情美女久久| 91免费啪视频| 色色国产| 成久综合视频| 九九XX视频| 激情五月婷婷网| 4399在线观看免费高清黄色视频| 亚洲五月婷| 丁香六月婷婷开心| 综合色在线| 无码区婷婷五月花开| 日本乱子人伦在线视频| 97操视频| 极品人妻VIDEOSSS人妻| 日韩抽插操逼| 日本性视频| 色婷婷小说网| 26uuu国自产精品| 97在线99| 91九色欧美| 人人色人人摸人人看| 日韩AV免费看| 无码髙清| 五月天基地| 久99热| 天天日夜夜高潮| 七七久久综合| 色五月大香蕉| 热思思| 啊V视频在线观看| 亚洲精品又粗又大又爽A片| www.色擼擼.com| 操操自拍| 丁香五月婷婷免费视频| 超碰不卡在线| 97涩涩丁香五月天| 大香蕉久久婷婷精品综合| 久久九色| 亚洲九九视频| 色婷婷丁香五月在线| 久久99久久久久久久噜噜| 日韩aaa| 丁香五月五月婷婷五月天激情四射| 97在线/亚洲| 日韩av手机在线观看| 99色精品| 人人人操97| 操人91| 爆乳熟女-区二区三区| 日本丁香五月| 激情久久丁香| 不卡影院午夜理论片| 婷婷伊人网| www.久操| 天天色伊人| 996热re视频精品视频| 这里只有精品96| 久热九九| 色播播五月天| 丁香婷婷十月| 热的国产,热的综合,热的有码| 99热只有精品在线| 丁香五月婷婷国产av| 综合色播| 国产.亚洲.欧洲视频在线| 99精品7| 激情五月天色| 日本久久人人| 日本久久9| 狠狠ri| 五月色综合| 色综合久久天天综合网| 天天干天天干天天操| 亚洲婷婷丁香五月视频| 亚洲婷婷五月天综合| 色五月婷婷综合在线| av婷婷丁香| 成人做爰黄A片免费看直播室男男 久草热8精品视频在线观看 | 超碰超碰在线| g00d人体西西| 五月色丁香婷婷综合| 男同91| 久久人妻精品| 色九九综合| 亚洲五月花| Av九九| 五月天色色婷婷| 第五色色色婷婷| 色婷婷狠狠干芒果TV| 99热这里只有精品23| 99热热九九| 婷婷五月天成人五月天| 91一起操| 色婷婷操逼| AV网站免费在线| 色五月婷婷91| 久久九九@| 热99久| 97操碰人人| 亚洲色图在线视频| 99热e| 丁香五月婷婷啪| 激情婷婷护士激情| 男女啪啪视频久 9| 97午夜一区二区| 偷拍九九热| 26uuu成人网| 丁香五月婷婷综合激情哟哟哟| 伊人在线视频| www.97视频| 香蕉网婷婷| 久久婷青青草原| 日本久碰| 色婷久| 在线观看av网站| 婷婷五月天堂| 婷婷五月天久久| 激情五月天视频| 亚洲中文字幕av| 夜夜穞天天穞狠狠穞AV美女按摩| 亚洲乱码日产精品BD| 国产精品激情AV久久久青桔| 综合久久丁丁香婷| 黄色高清无码| 丁香五月AV| 亚洲九区| WWW五月天| 久热只有这里精品| 99热这里全都是精品| 8区视频在线| 精品人妻一区二区| av一级棒av| 午夜激情久久| 五月婷激情影院| 五月丁香六月在线欧美| 亚洲激情无码久久| 亚洲麻豆乱码国产2028| 色色色色色色网站| 久久五月视频| 搡BBBB搡BBB搡18| 99精品综合在线| 伊人狠狠丁香婷婷综合尤物| 五月伊人综合| 涩婷婷五月天| 色玖玖爱| 无码激情AAAAA片-区区| 九月婷婷综合在线| 中文字幕综合网| 五月天婷婷爱丁香中文字幕| 五月花激情| 欧美日朝成人| 欧美69久成人做爰视频| 天天操精品| 五月色丁香| 丁香六月婷婷综合麻豆| oumeisesewang| 99热在线精品观看| 99热99在线| 91 欧美| 亚洲有码在线视频| 色五月丁香五月五月婷婷| 天天摸人人摸| 欧美色五月| 色欲久久99精品久久久久久| 丁香五月色五月| 天天艹夜夜爽| 97干在线播放| 精品成人在线| 五月天激情图片| wwwC0maV五月花| 亚洲欧美综合7777色婷婷| 欧美内射AAAAAAXXXXX| 影音先锋 一区| 五月婷婷co.m| AV在线免费播放| 五月天丁香婷婷网| 成人丁香五月| 免费不卡狠操美女视频网 | www.99操| 丁香五月色色色色| 久人操| 色综色网| 激情五月天在线观看婷婷| 丁香六月婷婷综合啪啪| 激情五月天婷婷| 2015WWW永久免费观看播放| 丁香开心深爱| 精品久热| 五月天丁香成人社| 色婷婷呢狠禁久禁| 伊人春天av| 天堂综合久| 久久五月婷综合| 天天五月香欧美| 伊人网啪啪| 色八戒操婷婷| Jh7Uf088VHafNm| 五月丁香五月婷婷| 九热久| 精品久久66| 亚洲V国产V欧美V久久久久久| 91久久久久久久久| 丁香六月婷| 1024AV视频| 婷婷色无码| 婷婷五月六月丁香| 青青草色在线视频观看| 免费观看的婷婷五月视频在线| 免费视频在线观看的网站| 婷婷色婷婷亚洲成人| 久久久27操| 日本色色影院| 日韩99精品| 婷婷五月天久草在线| 热的国产,热的综合,热的有码| 婷婷无码视频| 任你擦免费视频| 五月丁香啪啪| 无码 av电影| 国产精品操| 激情五月丁香婷婷| 色八戒操婷婷| 丁香五月激情视频| 五月天婷久久| 五月天色五月天| 色色五月婷| 一起草无码视频| 在线日韩视频| 久9视频| 伊人久久五月天| WWW.久久久久久久| 伊人久久大香线蕉av一区| 怡红院91a√| 99热这里只有精品3| 97超级碰碰碰久久久| 久久婷婷激情视频| AV中文字幕夜夜操b天天摸bb | 99爱在线视频| 99re免费在线视频| 综合五月天| 五月 成人 婷婷| 丁香五月综合激情啪啪| 美女黄频aⅴ视频| 六月婷婷激情图片| 亚洲欧美成人在线| 俺去也五月天婷婷| 五月婷婷六月丁香免费| 丁香六月婷| 色五月婷婷、老熟女| 日韩黄在免| 新精品99| 欧美WW在线网| 中文字幕视频在线播放| 香蕉综合网| 99精品网| 五月天久久www| 91九九九九九九| 一区二区乱码视频| 97香蕉久久超级碰碰高清版| 丁香五月综合| www.色综合| 五月丁香六月色婷婷| 五月婷无码| 99无码| 玖玖国产视频一区| 欧美在线| 激情五月天激情综合网| 五月天停停日日| 色五月在线观看| 五月婷婷久久开心网| 日本激情综合| 天天日天天色| 婷婷丁香五月天综合AV| 婷婷97狠狠成人网站| 久久久久人妻精选| 91婷婷色| 狠狠操狠狠| 激情综合色婷婷啪啪六月天| 九九人人看| 亚洲激情婷婷| www 五月天 com| 99热99| 狠狠干,狠狠操| 综合图区激情| 亚洲午夜电影| 人妻丰满精品一区二区A片| 人人操插| 国产真实乱了老女人视频| 色婷视频| 嫩草AV久久伊人妇女超级A| 草草视频91| 99这里都是精品6| 狠狠999| 色五月色情| 99热最新| 婷婷丁香五月高清| 日韩成人综合网| 99视频在线9| 亚洲不卡| 激情久久综合网| 91综合国免费久入| 深夜婷婷 丁香| 中文成人在线| 五月婷婷六月爱| 五月天狠狠色| 影音先锋美国A| 99a级片| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 欧美99热| 综合婷婷都市激情| 五月天开心成人网| 99超级碰碰| 大香焦啪啪啪| www激情| 丁香六月婷婷综合啪啪| 婷婷,五月天,丁香,第一| 中文字幕人妻AV| www.超碰| 五月丁香啪啪婷婷| 亚洲经典小视频| 激情综合五月婷| 丁香六月激情毛片| 深爱五月天 开心网| 视频一二区| 琪琪狠狠干| 色播五月丁香| 日韩在线视频网站| 久久久五月四色| 久久人妻久久久久| 亚洲无aV在线中文字幕| 婷婷五月天桃花网| 免费黄色片子| 色情五月婷| 欧美色爱五月天| 五丁香激情综合| 久久超级碰碰| 婷婷伊人| 五月婷婷五月天| 99精品视频在线观看| 99精品热| 中文字幕在线观看视频www| 亚洲va在线∨a天堂va欧美va| 色五月婷婷少妇人妻| 色婷婷偷拍| 久久99网| 成人免费黄色短视频| 丁香五月电影| 丁香九月综合激情| 亚洲五月停停| 久色欧美| 精品人妻久久久久久久| 2020久久婷婷五月| 五月色婷婷亚洲| 综合色情网| 激情五月天啪啪| 九九色情网五月天| 六月婷婷综合网2| 少妇2做爰HD韩国电影| 日日夜夜天天| 色吧五月婷婷| 99人妻碰碰碰久久久久禁片| 五月丁香影院| 五月综合在线| 激情五月综合婷婷| 五月天伊人综合| 人人爽欧美婷婷久久久五月丁香| 丁香婷婷六月激情综合| 2025最新亚洲激情在线| 精品一二三区视频立| www,8050,午夜三级| 色五月激情视频在线综合| 色婷婷电影网| 精品九九在线观看视频| 欧美日韩一a.无| 久久99综合| 亚州精品色情无码A片| 久久丁香五月综合六月激情红杏视频 | 天天爽天天干| 天天日日夜夜| 熟妇人妻中文字幕无码老熟妇| 99色热| 国外亚洲成AV人片在线观看| 激情五月天婷婷| 午夜天堂一区人妻| 久久性爱网| 精品热九九| 东北熟女高潮99综合99| 六月丁香成人| 色欲影香| 九九Av| 思思久ren热| 五月六月激情婷婷| 激情婷婷五月色| 亚洲色婷婷网站| 五月丁香六月婷婷的女人| 啄木鸟丝袜美女福利视频| 噜噜五月天综合| AAA久久| 亚洲成av人影院| 开心五月综合| 激情综合色| 婷婷基地爱| 五月婷婷草| 91久久婷婷| 国外亚洲成AV人片在线观看| 日本eVa一区=区视频| 狠狠色综合无线观看| 99视频在线观看网址| 国产91视频| www.99热视频在线观看| 色五月婷婷久久大| 无套内射极品大美女| 91久久| 亚洲视频在线观看| 99re久热| 激情五月丁香社区| 色五月婷婷久久爱| 激情久久综合网| 色婷婷在线视频| 九月婷婷久久| 无码少妇高潮喷水A片免费| 欲色人妻| www.99久| 色婷婷婷综合五月天| 亚洲日日操| 97婷婷色| 婷婷99综合| 久9热视频在线观看| 精品一区二区三区四区五区六区介绍| 艾小青av| 五月丁香六月成人| 99热这里有精品| 日本一级大片| 亚洲性天天| 国产精品香蕉| 91丨九色丨43老版熟女| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 欧美成人日韩| 丁香五月天欧美成人| 99热99这里只有精品| 大香蕉婷婷色| 久草婷婷在线| av网址在线| 激情综合网激情五月丁香| 4399在线日本A片| 亚洲中文字幕在线观看| 中文AV在线观看| 丁香五月婷婷88在线| 婷婷色综合av| av国产精品| 超碰在线综合| 9久热这里只有精品视频| 99在线热视频| 久草婷婷网 | 丁香五月婷婷影院| 色色自拍视频网站| 99视频精品在线| 97色色色| 五月在线| 黄网在线播放| 米奇影视五月天| 婷婷狠狠干| 日本少妇AA一级特黄大片| 大功率国产在线| 天天操婷婷| 欧美情色电影一区二区| 一区二区成人电影| 色色综合网络| 日本天天色| 久久久久8888| 婷婷色情五月| 偷偷与邻居做爰完整视频| 婷婷色色丁香五月天| 精品色色色| 亚洲五月天激情| 六月丁香av| 久久久久丁香婷婷五月天| av亚洲国产小电影| 亚洲色啪| 色爱99| 婷婷新网址| 亚洲色欲AAAAAA| 大香网伊人久久综合| 超碰二区| 婷婷社区五月天| 五月停性愛| 婷婷五月天天| 九九热最新视频| 丁香婷婷六月天| 婷婷五月天国产在线播放| 丁香五月天天久久综合小说| 99热99在线| VA色婷婷| 婷婷综合视频| 人妻少妇色综合| 9l视频自拍九色9l黑人| 丁香六月色情| 五月天色五月| 99综合视频在线| 日韩性视频| 婷婷大乡焦噜噜| 五月丁香六月婷婷啪啪| www.久久久久久久久久.com| Va另类视频| 四川BBB搡BBB搡多人乱亂| 综合激情网五月激情| 久久久性爱视频| 九九碰九九爱97| 丁香六月激情| 久久激情五月天| 中文字幕综合| 五月丁香花视频| 久久3p| 91久久电影| 久色激情| 久久久久99精品成人网站| 26uuu在线观看| 五月亭久久无码视频| 开心五月婷婷婷美女| 亚洲无码99| 婷婷激情五月视频| 综合网激情| 97黑人精品区| 91九色欧美| 欧美人久久| 五月丁香六月婷综合成人综合| 五月丁香六月婷婷无码| 亚洲A片成人无码久久精品青桔 | 免费久久这里只有精品99| 色爱综合网| 九九热思思热| 久久久久久久11111111111| 思思热在线视频99| 97成人在线视频| 五月天最新网| 久久免费丁香| 欧洲毛片基地c区| 91Chinese在线| 色五月综合网| 五月天另类综合网| 老师高潮流白浆喷水的A片| 色女伊人| 色玖玖玖| 五月天激情四射| 丁香女人五月天| 免费三级黄色| 色深爱五月| 五月天激情网址| 91九九| 人妻系列久久久久久久久久久| 国产日产亚洲系列最新| 26uuu欧美宗合| 久久婷婷丁香视频网| 婷香五月| 五月婷成人网| 日韩AC在线免费观看| 99热这里只有精品8| 中文字幕av久久爽一区| 超碰99在线| 五月婷婷婷婷婷| 五月丁香在线观看99| 丁香婷婷深情五月亚洲| 先锋资源 996| 啪精品| www.99热| 人妻肉射免费观看| 五月综合丁| 五月天精品| 丁香五月婷婷色播艳门照| 精品亚洲国产成AV人片传媒| 久久激情网| 久色国产| 日韩综合久久| 色欲一区二区三区精品A片| 激情VA视频| 日本va欧美va欧美va精品| 激情小说色五月| 日韩人妻无码精品| 色五月开心五月激情五月| 精品视频网| 99re8在这里只有精品| www.五月丁香av| 六月久久婷婷| 国产露脸150部国语对白| 亚洲国产99| 久热这里只有精品在线观看| 丁香婷婷综合色五月激情国产基地| 亚洲区视频| 第四色26uuu| 五月激情视频| 九九久久色| 亚洲色色色|