國內linux和macos搭建esp32的開發環境

2022-01-08 fzxhub
背景

esp32開發方式有許多

如在Arduino軟體中Arduino框架開發方式,網上有許多教程

在platformIO中進行Arduino或者idf方式開發,platformIO封裝不錯

使用官方idf在linux、macos、windows開發

最近想了解一下官方SDK的開發方式,在搭建esp32的環境中遇到許多問題。

該搭建方案和官方文檔配合查看,部分細節該文檔未列出

樂鑫官方文檔

GitHub

個人網站:國際

個人網站:中國

第一步:基礎工具安裝

在linux或者macos中搭建esp32的環境,先要安裝一些基礎工具,如python等等。macos可以使用Homebrew、macports安裝相關的工具以及依賴。如果部分工具已經安裝過可以直接跳過。

apt purge vim-common

apt install vim

apt install git

apt install git wget flex bison gperf python3 python3-pip

apt install python3-setuptools cmake ninja-build ccache

apt install libffi-dev libssl-dev dfu-util libusb-1.0-0

brew install vim

第二步:克隆esp-idf倉庫

esp-idf項目是分子模塊進行團隊開發的SDK。因此直接克隆的倉庫不能直接使用需要將子模塊也克隆才能使用,我在這裡卡了許久。遇到問題,使用多注意命令行的提示,對應想辦法解決。

#方案一:這是直接遞歸克隆樂鑫在GitHub上的esp-idf倉庫,但是國內容易失敗,可以試試

git clone --recursive https://github.com/espressif/esp-idf.git

#方案二:先克隆esp-idf倉庫,然後拉取子模塊

git clone https://github.com/espressif/esp-idf.git

git submodule update --init --recursive

#方案三:1.這是使用國內gitee託管克隆倉庫

git clone https://gitee.com/EspressifSystems/esp-idf.git

#方案三:2.克隆國內gitee的工具倉庫

git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

#方案三:3.複製esp-gitee-tools中的submodule-update.sh到esp-idf,然後執行submodule-update.sh

./submodule-update.sh

備註:

這一步主要思想就是將就是將官方的esp-idf倉庫完整克隆下來,在這個過程中不能報錯,大家也可以查看該倉庫中的.gitmodules中看看有哪些子模塊。在這些模塊在該項目的位置在GitHub中是以超連結的方式連結的。只克隆esp-idf到本地時,這些文件夾是空的,我們只要想辦法將這些空文件夾中的內容填進去就可以,各種辦法都可以。

官方文檔是引導我們在~/文件夾建立一個esp文件夾,然後將esp-idf放入其中,建議大家都這樣做。

第三步:安裝編譯器、調試器等工具

esp-idf包有了,需要安裝esp32的編譯器、調試器等等工具,其實些工具就是gcc、openocd等工具,這些工具主要是官方根據esp32修改過的定製版本。在esp-idf中,官方為我們寫好下載腳本。我們只要執行腳本文件就可以安裝了。esp32有esp32、esp32s2、esp32s3等等系列。我們可選系列安裝或者全安裝。這裡我全安裝

#設置從樂鑫官方下載方式

export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"

#執行安裝腳本

./install.sh

備註:

當看到提示「You can now run:. .export.sh」,表示安裝成功。

該步主要下載編譯編譯器、調試器等等工具,是下載工具包然後本地解壓安裝。如果依然失敗,可以設置從樂鑫官方下載的方式,或者直接想辦法下載安裝包到指定目錄等等方式嘗試。

第四步:設置環境變量

此時,您剛剛安裝的工具尚未添加至 PATH 環境變量,無法通過「命令窗口」使用這些工具。因此,必須設置一些環境變量,這可以通過 ESP-IDF 提供的另一個腳本完成。

#設置環境變量

. .export.sh

#如果當前不在esp-idf文件夾中

. ~/esp/esp-idf/export.sh

備註:

當終端關閉後設置環境變量失效。需要再次運行export.sh設置。

可以使用方法設置成打開終端自動設置環境變量,自行查找方案。

第五步:編譯、燒錄、驗證

複製esp-idf/examples/get-started/下的hello_world工程或者其他工程到自己的工作目錄進行編譯、燒錄、驗證工作。

#到工作目錄下

cd ~/esp/hello_world

#設置目標晶片

idf.py set-target esp32

#打開配置界面

idf.py menuconfig

#編譯

idf.py build

#燒錄

idf.py -p PORT [-b BAUD] flash

#打開串口監視

idf.py -p PORT monitor

相關焦點

  • ESP32S2 與 ESP32 開發方式對比,帶你入門環境搭建
    /DAC 接口,支持觸摸傳感器、溫度傳感器、脈衝計數器;集成 Wi-Fi MAC/ BB/RF/PA/LNA;支持安卓、IOS 的 Smart Config(APP)/AirKiss(微信) 一鍵配網;支持二次開發,集成了 Windows、Linux 開發環境ESP8266 / ESP32 和 ESP32S2的差別一覽表
  • Linux系統下ESP32開發板搭建RT-Thread開發環境
    王朝陽:杭州閃易科技嵌入式負責人,從事嵌入式Linux軟體、驅動開發、STM單片機開發、ESP32等開發。
  • ESP32-IDF環境搭建
    隨後ESP32發布,600MIPS運算能力、WIFI+BLE+ETH、QFN封裝、不到10元的價格。現在ESP32的生態可謂相當成熟,樂鑫ESP-IDF的教程遍天是,數款模組和開發板任君選擇,Arduino、PlatformIO、NodeMCU 都對ESP32提供了支持。
  • 使用ESP32來學習Python之開發環境搭建
    MicroPython是Python對微控制器的支持,在微控制器上運行Python解釋器;基於Python3,包含一些基礎庫和對於硬體的特有庫。MicroPython固件MicroPython官方針對不同的微控制器有不同的固件:http://www.micropython.org/download#esp32
  • Windows下搭建ESP-IDF開發環境,適合ESP32/S2/C3/S3系列模組二次開發
    修改 Python pip 源:為了加快後續 Python 包的下載速度,可將 pip 源切換到國內,例如切換為國內阿里的源。2.3 安裝編譯工具鏈為了生成最終能在 ESP 晶片上運行的 bin 文件,這裡還需要安裝晶片對應的編譯工具鏈和構建系統,工具鏈相關的下載信息一般在 ESP-IDF 中附帶,我們這裡使用 esp-gitee-tools
  • 老宇哥帶你玩轉ESP32:02使用VSCode+PlatformIO搭建開發環境
    老宇哥帶你玩轉ESP32:01入門介紹 (點擊閱讀)有部分同學反饋下載的時候特別慢,這個庫是託管在GitHub的,國內有部分網絡訪問不了或者是非常慢,其實有一些方法是可以加快下載速度的,比如修改hosts文件,
  • 【玩轉ESP32】7、ESP32連接wifi
    收錄於話題 #玩轉esp32sta;wifi_init_config_t cfg=WIFI_INIT_CONFIG_DEFAULT()用於獲取wifi的默認配置;esp_wifi_init(&cfg)用於初始化wifi;esp_event_handler_instance_register 用於向上面的esp_event_loop_create_default()`註冊回調函數,
  • 另類的Arduino&ESP32開發環境搭建(一)
    另類的Arduino&ESP32開發環境搭建(一)Arduino IDE下的ESP32
  • ESP32 入門教學,不入門,不教學
    我這次給大家介紹一個晶片,esp32,沒有收過任何費用,就是純技術分享,讓初學者少踩點坑吧,我也是最近用這個晶片,覺得爽得一X。這個晶片最大的優勢就是便宜,便宜和易於開發讓以前很多不敢想像的智能家居變成了可能,開發環境可以在windows下開發也可以在linux 環境下開發,而且對於嵌入式來說做了這部分對於網絡藍牙都有比較深刻的了解了,以後做其他系統開發也不會有太大難度。2.
  • 啟明雲端分享|盤點Esp32-C3與Esp8266 的區別
    ESP32-c3 :mkdir espcd .對於 64 位 Linux:https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz對於 32 位 Linux:https://dl.espressif.com/dl/xtensa-lx106
  • Arch下ESP8266開發環境搭建篇
    ESP8266EX微控制器集成了Tensilica L106 32位RISC處理器,可實現極低的功耗並達到160 MHz的最大時鐘速度。實時作業系統(RTOS)和Wi-Fi堆棧使大約80%的處理能力可用於用戶應用程式編程和開發。
  • 嘗試在Win10系統搭建esp32編譯系統.下
    要將舊版本的預編譯環境中的數據移動到新版本:把舊的 MSYS2 環境(即 C:\msys32)移動/重命名為不同的目錄(即 C:\msys32_old)。按照前文所述步驟下載新的預編譯環境。將新的 MSYS2 環境解壓縮到 C:\msys32 (或其他位置)。找到舊的 C:\msys32_old\home 目錄並把它移到 C:\msys32。
  • 如何安裝及設定ESP32的開發環境
    如果你已決定採用ESP32並已入手,那就接下來當然就是要來安裝和設定ESP32的開發環境了,本文將帶你搞定這些動作。ESP32 Arduino IDE開發核心安裝若還沒安裝Arduino IDE,必須先至原廠網站下載並安裝,請依照以下步驟完成安裝。1.
  • ESP32 For Arduino雜記
    ESP32 使用MicroPython 控制Gopro Hero Black4ESP32晶片-LEDC外設(另附Arduino代碼)Dji TT無人機擴展件ESP32晶片(D2WDQ5)Thonny燒錄ESP32 mpy固件ESP32+Thonny+固件燒錄+編寫建議ESP32
  • 在 MacOS 上編譯 Linux 內核(2020 edition)
    cp -r busybox/_install/* qemu_rootfs/# create file and dirs 4-3:在文件系統裡新建一些文件夾和文件並複製一些內容。cd .引用booting a fresh linux kernel on qemu | OpsTips[6]Mitchel Humpherys :: How to Build A Custom Linux Kernel For Qemu (2015 Edition)[7]使用 qemu 搭建內核開發環境 - 離小木 - 博客園[8]用 qemu 運行一個小小 Linux 系統 - 路人丁丁 4 的個人空間
  • ESP32最新SDK V3.2 開發環境的搭建
    前言之前開發ESP32,一直用mingw32.exe 進行編譯與下載,最近更新了ESP32的SDK
  • 用Arduino玩轉掌控板(ESP32):ESP32概述與Arduino軟體準備
    掌控板集成了 ESP32 高性能雙核晶片,具備 WiFi 和藍牙連接功能,同時在板子上又配置了豐富的傳感器,最重要的是它是專門為國內編程教學而設計的,符合國內課堂使用的情況,再加上價格便宜,所以越來越多的做 STEAM 和創客的老師開始使用它了。
  • 搭建Android內核環境
    以前搭建過linux的內核環境,當時是為了做kernel pwn搭建的,但是嘗試復現Android kernel的漏洞,雖說原理相同,但還是重新搭建了新的環境。搭建環境的步驟基本沒遇到什麼大坑,跟著這個庫(https://github.com/Fuzion24/AndroidKernelExploitationPlayground)走基本就沒遇到什麼大坑。
  • macos opengl 環境搭建
    GLADloadproc)glfwGetProcAddress)) { std::cout << "Failed to initialize GLAD" << std::endl; return -1; } glViewport(0, 0, 800, 600); glfwSetFramebufferSizeCallback
  • ESP32平臺開發LVGL圖形界面
    ,LVGL相關的源碼和例程,是以組件的形式提供的,因此,LVGL的源碼保存在lv_port_esp32/components文件夾裡面,並且LVGL相關的源碼和例程,是使用git submodule的方式進行管理的,因此,我們需要更新submodule。