文章總列表

ESP32(3) Visual Studio Code + PlatformIO開發環境

這篇介紹ESP32-C開發環境,我打算使用Espressif SDK搭配Visual Studio Code + PlatformIO開發。軟體開發本質超級複雜,努力踩坑撐過去吧

[書籍]

我用以下這本參考書,他用Visual Studio Code + PlatformIO搭配ESP32 SDK開發,這本書非常合乎我的預期:省略大量細節。把書本當成地圖,大概知道哪裡可以怎麼做,然後努力享受被折磨的樂趣吧!


[相關文件和網站]

一般開發會準備這些文件,以下是我踩坑後的筆記

開發板相關

CPU核心相關

PlatformIO相關頁面(開發環境)


[PlatformIO相關路徑]

這種IDE隱藏的細節,全部要自己挖出來,尤其是廠商的範例程式碼

  • Development Tools
    • /c/user/name/.platformio/platforms/espressif32/
      • Board definition, boards/airm2m_core_esp32c3.json
      • 這個檔案最大的坑是Flash_mode如果設錯就掛了(其他板子用qio)
  • Tool folders
    • /c/user/name/.platformio/packages/
      • Compiler for ESP32-C, toolchain-riscv32-esp/
      • Tool for debugger, tool-openocd-esp32/
      • ESP32 SDK, framework-espidf
        • 這裡面有ESP32-SDK的程式碼,以及範例

[開發環境驗收清單]

上手嵌入式開發,我會把這些事做一輪,東摸西摸確定自己掌握整個環境

  1. 編譯軟體, debug build。既然SDK用FreeRTOS,呼叫一些RTOS Call應景一下


  2. 啟動debugger,設定斷點,檢視記憶體,使用expression功能看特定變數
  3. 啟動serial port,看到COM port內容
  4. 編譯軟體, release build
  5. 燒錄到板子上,確認Serial port有輸出;斷電後,確認程式有正常執行
  6. Visual Studio Code有github整合,創建一個版本控制倉庫,嘗試submit code
  7. 板子還在運作軟體中,啟動debugger,能用來分析系統最後狀態(attach mode,還沒測試成功)
  8. 確認build result如預期,找到底下這些檔案
    1. ELF file
    2. MAP file
    3. DISASM file
      命令比較長,我把它存到某個text file,然後submit進去git,需要能隨時複製貼上跑,之後應該研究怎麼整到build flow
      C:\Users\lihgo\.platformio\packages\toolchain-riscv32-esp\bin\riscv32-esp-elf-objdump.exe -d C:\Users\lihgo\Documents\PlatformIO\Projects\esp32-c3-trial\.pio\build\airm2m_core_esp32c3_debug\firmware.elf > .pio\build\airm2m_core_esp32c3_debug\firmware.disasm
  9. 到另外一台電腦,從github抓code,確定可以重現開發環境

最後我得到一個工程模板,之後開ESP32-C的專案可以用

[其他有用的參考資料]



留言

這個網誌中的熱門文章

幼犬書桌椅選擇心得 升降桌 兒童桌椅

STM32 UART + DMA,使用HAL實作TX/RX,以及不定長度接收

CANON G3000 廢墨瓶改裝