ESP32開發:ubuntu22.04 下esp-idf開發環境搭建

ubuntu22.04 下 esp-idf 開發環境搭建

    • 1.安裝編譯 ESP-IDF 需要以下軟件包
    • 2.獲取 ESP-IDF
    • 3.設置工具
      • 下載工具備選方案
    • 4.設置環境變量
    • 5.編譯工程并燒錄
      • 配置工程
      • 編譯工程
      • 燒錄固件到設備
    • 6.其他指令
      • 監視輸出
      • 擦除 flash
      • 清除編譯

1.安裝編譯 ESP-IDF 需要以下軟件包

編譯 ESP-IDF 需要以下軟件包。請根據使用的 Linux 發行版本,選擇合適的安裝命令。

  • Ubuntu 和 Debian:

    sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
    

2.獲取 ESP-IDF

在home目錄下新建 esp 文件夾.

mkdir ~/esp

為了安裝多個版本:

esp 目錄下載指定版本的esp-idf sdk.

cd ~/esp
git clone -b v5.4.2 --recursive https://github.com/espressif/esp-idf.git

等待下載解壓結束,把esp-idf 重命名為 esp-idf-v5.4.2,進入 esp-idf-v5.4.2

3.設置工具

進入 esp-idf-v5.4.2 ,運行安裝腳本:.install.sh

cd esp-idf-v5.4.2

如果只需要為esp32-s3、esp32設置所需工具,可以指定:

. ./install.sh esp32s3,esp32

如果需要一次性為所有支持的目標芯片安裝工具,可以運行如下命令:

. ./install.sh all

下載工具備選方案

ESP-IDF 工具安裝器會下載 Github 發布版本中附帶的一些工具,如果訪問 Github 較為緩慢,可以設置一個環境變量,從而優先選擇 Espressif 的下載服務器進行 Github 資源下載。

?? 該設置只影響從 Github 發布版本中下載的單個工具,它并不會改變訪問任何 Git 倉庫的 URL。

要在安裝工具時優先選擇 Espressif 下載服務器,請在運行 install.sh 時使用以下命令:

cd ~/esp/esp-idf-v5.4.2
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh

??推薦國內用戶使用國內的下載服務器,以加快下載速度。

cd ~/esp/esp-idf-v5.4.2
export IDF_GITHUB_ASSETS="dl.espressif.cn/github_assets"
./install.sh

4.設置環境變量

工具安裝完成之后,尚未添加至 PATH 環境變量,無法通過終端中使用這些工具。因此,必須設置一些環境變量。

需要運行 ESP-IDF 的終端窗口運行以下命令:

. $HOME/esp/esp-idf-v5.4.2/export.sh

如果需要經常運行 ESP-IDF,可以為執行 export.sh 創建一個別名,具體步驟如下:

  1. 復制并粘貼以下命令到 shell 配置文件中(.profile.bashrc.zprofile 等)

    alias get_idf='. $HOME/esp/esp-idf/export.sh'
    
  2. 通過重啟終端窗口或運行 source [path to profile],如 source ~/.bashrc 來刷新配置文件。

現在可以在任何終端窗口中運行 get_idf 來設置或刷新 ESP-IDF 環境。

不建議直接將 export.sh 添加到 shell 的配置文件。這樣做會導致在每個終端會話中都激活 IDF 虛擬環境(包括無需使用 ESP-IDF 的會話)。這違背了使用虛擬環境的目的,還可能影響其他軟件的使用。

按照上述方法,當安裝了多個版本的esp-idf 之后,也可以通過使用添加別名來區分不同的版本。

示例如下:

在終端中,輸入get_idf_v53 即可使用V5.3.3版本的esp-idf:

5.編譯工程并燒錄

配置工程

設置目標芯片,然后配置項目,指令如下:

idf.py set-target esp32s3
idf.py menuconfig

編譯工程

打開一個測試工程,編譯工程需要輸入指令:

idf.py build

運行以上命令可以編譯應用程序和所有 ESP-IDF 組件,接著生成引導加載程序、分區表和應用程序二進制文件,編譯完成后將生成 .bin 文件。

把串口插入到ubuntu中,找到對應的串口的標識,Linux 操作系統:/dev/tty 開頭。

Linux中兩種常見的 USB 轉串口設備標識:

  • ttyUSB*:常見于 CH340、CP2102 等 USB 轉串口芯片。

  • ttyACM*:常見于 CDC-ACM 類設備(比如 Arduino、STM32 的虛擬串口)。

使用如下指令可以查看ubuntu下的可用的串口設備文件:

cd /dev
ls ttyUSB*
ls ttyACM*

也可以比較插入設備前后的變化,可以快速找到當前的設備標識符:

插入設備前,運行:

ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null

記下已有的串口設備。

插入 USB 串口設備后,再運行同樣的命令。

ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null

新出現的設備就是你要找的,比如 /dev/ttyUSB0/dev/ttyACM0

燒錄固件到設備

燒錄之前,需要獲取串口設備文件的讀寫權限:

sudo chmod a+rw /dev/ttyACM0

或者

sudo chmod 666 /dev/ttyACM0

運行以下命令,將剛剛生成的二進制文件燒錄至芯片:

idf.py -p PORT flash

將 PORT 替換為自己的串口名稱,上面的設備對應指令則為:

idf.py -p /dev/ttyACM0 flash

6.其他指令

監視輸出

可以使用 idf.py -p PORT monitor 命令,監視工程的運行情況

idf.py -p PORT monitor

擦除 flash

ESP-IDF 支持擦除 flash。請運行以下命令,擦除整個 flash:

idf.py -p PORT erase-flash

若存在需要擦除的 OTA 數據,請運行以下命令:

idf.py -p PORT erase-otadata

擦除 flash 需要一段時間,在擦除過程中,請勿斷開設備連接。

清除編譯

清除之前的編譯:

idf.py fullclean

文檔參考鏈接:
Linux 和 macOS 平臺工具鏈的標準設置?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98515.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98515.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98515.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

匯編基礎2

1.函數調用fun0mov r4, #100bx lrget_MaxNumcmp r0, r1stmfd sp!, {r0-r12, lr} //入棧bl fun0 //調用fun0函數ldmfd sp!, {r0-r12, lr} //出棧movge r3, r0movlt r3, r1bx lr mainldr sp, 0x40001000mov r0, #100mov r1, #200mov r2, #100stmfd sp!,…

20250909的學習筆記

HTML 基礎筆記1. HTML 基本格式<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>中文測試</title> </head> <body>這里是測試body測試內容。 </body> </html>2. HTML 標簽常用標簽 - <h1…

Linux 安全加固;Windows 安全設置

一、Linux 安全加固1. 賬戶與權限管理最小權限原則禁用 root 遠程登錄&#xff1a;修改 /etc/ssh/sshd_config&#xff0c;設置 PermitRootLogin no。使用 sudo 替代直接 root 操作&#xff0c;并通過 /etc/sudoers 限制命令范圍&#xff08;如僅允許 apt 和 systemctl&#xf…

條碼打印檢測一體機是什么?

在工業4.0和智能制造的大背景下&#xff0c;數據的準確性和實時性是構建高效追溯系統。條碼/二維碼作為物理世界與數字世界連接的橋梁&#xff0c;其打印質量直接決定了數據鏈路的可靠性。傳統“打印-人工抽檢/離線全檢”的模式存在流程割裂、效率低下、無法100%覆蓋的弊端&…

Javaweb - 14.6 - Vue3 數據交互 Axios

目錄 Promise 普通函數和回調函數 Promise 簡介 Promise 基本用法 async 和 await 的使用 Axios 介紹 Axios 入門案例 Axios 的 get 和 post 方法 Axios 攔截器 完&#xff01; Promise 普通函數和回調函數 普通函數&#xff1a;正常調用的函數&#xff0c;一般函數…

怎么選適合企業的RPA財務機器人?

對于大多數財務人來說&#xff0c;“月初月末就是噩夢”已經成了常態&#xff1a;一邊要面對堆積如山的單據和報表&#xff0c;一邊還要應付領導不斷加碼的工作&#xff0c;常常忙到深夜&#xff0c;卻總覺得自己陷在重復事務中難有成長。其實&#xff0c;這并不是個體問題&…

html css js網頁制作成品——HTML+CSS無窮網頁設計(5頁)附源碼

目錄 一、?????網站題目 二、??網站描述 三、??網站介紹 四、??網站效果 五、?? 代碼實現 ??HTML

AUTOSAR進階圖解==>AUTOSAR_SWS_PDURouter

AUTOSAR PDU Router詳解文檔 AUTOSAR通信架構中的核心路由模塊目錄 1. 概述2. PDU Router模塊架構3. PDU Router配置模型4. PDU Router路由流程5. PDU Router狀態機6. 總結 1. 概述 PDU Router模塊是AUTOSAR通信架構中的核心組件&#xff0c;負責在AUTOSAR軟件組件之間路由I-…

RHEL7.9、RHEL9.3——源碼安裝MySQL

目錄 一、環境部署 1. 克隆rhel7.9虛擬機 二、源碼安裝MySQL 1. 準備工作 2. 源碼部署mysql8.0.40 1&#xff09;安裝編譯mysql所需軟件包 2&#xff09;編譯安裝mysql8.0.40 3&#xff09;生成啟動腳本 一、環境部署 1. 克隆rhel7.9虛擬機 改名為 “RHEL79_mysql_master” 并…

解決Win11 安全中心刪掉存在隱患的工具

打開設置&#xff0c; 找到Windows安全中心&#xff0c;找到病毒和威脅防護&#xff0c;選擇排除項&#xff0c;點 添加或刪除排除項添加文件&#xff0c;文件夾&#xff0c;工具按照自己需求選擇。或&#xff0c;刪除文件注意&#xff1a;隱患的工具或者文件安裝或者用完&…

通過URI Scheme實現從Web網頁上打開本地C++應用程序(以騰訊會議為例,附完整實現源碼)

目錄 1、需求描述 2、選擇URI Scheme實現 3、何為URI Scheme&#xff1f; 4、將自定義的URL Scheme信息寫入注冊表的C源碼實現 5、如何實現最開始的3種需求 6、后續需要考慮的細節問題 之前陸續收到一些從Web頁面上啟動我們C客戶端軟件的需求&#xff0c;希望我們能提供一…

機器學習02——模型評估與選擇(過擬合與欠擬合、K折交叉驗證、均方誤差、混淆矩陣)

上一章&#xff1a;機器學習01——機器學習概述 下一章&#xff1a;機器學習03——線性模型 機器學習實戰項目&#xff1a;【從 0 到 1 落地】機器學習實操項目目錄&#xff1a;覆蓋入門到進階&#xff0c;大學生就業 / 競賽必備 文章目錄一、經驗誤差與過擬合&#xff08;一&a…

基于 Django 與 Bootstrap 構建的現代化設備管理平臺

整體步驟概覽 創建項目和應用設計模型&#xff08;Model&#xff09; - 定義設備的數據結構配置用戶認證&#xff08;Auth&#xff09; - 使用 Django 自帶的強大用戶系統創建視圖&#xff08;View&#xff09; - 處理業務邏輯&#xff1a;登錄、列表、增刪改查編寫模板&#x…

微軟依舊穩定發揮,Windows 最新更新性能「開倒車」

微軟在前不久為Release Preview測試用戶推送了最新Windows11 25H2版本。按照慣例&#xff0c;正式版將于9月或者10月與咱們見面。雖然看起來是個跨版本的大更新&#xff0c;但是更新方式將服務堆棧更新&#xff08;SSU&#xff09;與最新累積更新&#xff08;LCU&#xff09;。…

一手實測,文心x1.1的升級很驚喜啊

一手實測&#xff0c;文心x1.1的升級很驚喜啊 前言 月9日&#xff0c;在 WAVE SUMMIT深度學習開發者大會上 百度發布了一個新的思考模型文心x1.1&#xff1a; X1 Turbo 升級為 X1.1 了。 文心4.5 Turbo 和 X1 Turbo 是2025年4月25日發布的&#xff0c;距今已經半年過去了&…

Flask 核心基礎:從 路由裝飾器 到 __name__ 變量 的底層邏輯解析

Flask 核心基礎&#xff1a;從路由裝飾器到 name 變量的底層邏輯解析 在使用 Flask 開發 Web 應用時&#xff0c;我們總會從 app Flask(__name__) 和 app.route("/") 這兩行代碼開始。看似簡單的語法背后&#xff0c;藏著 Python 裝飾器機制與 Flask 框架設計的核心…

中國AI云市場報告:阿里云份額達35.8%,高于2至4名總和

9月9日&#xff0c;國際權威市場調研機構英富曼&#xff08;Omdia&#xff09;發布《中國AI云市場&#xff0c;1H25》報告&#xff0c;報告顯示&#xff0c;2025年上半年&#xff0c;中國AI云市場規模達223億元&#xff0c;阿里云占比35.8%位列第一&#xff0c;市場份額高于2到…

鴻蒙Next開發指南:UIContext接口解析與全屏拉起元服務實戰

前言在鴻蒙應用開發過程中&#xff0c;我們經常會遇到需要獲取UI上下文實例或者在非UI上下文中調用UI相關方法的場景。隨著HarmonyOS NEXT的不斷發展&#xff0c;UIContext API為我們提供了更加優雅的解決方案。本文將詳細介紹如何使用UIContext中對應的接口獲取與實例綁定的對…

leaflet讀取mvt格式

如圖所示&#xff0c;是全國的數據&#xff0c;截圖是部分數據先安裝&#xff1a;npm install leaflet npm install leaflet.vectorgrid如果是其余的框架直接用就行&#xff1a;import * as L from leaflet; import leaflet.vectorgrid;我用的是angular,所以是ts中聲明&#xf…

OSG中交互(鼠標、鍵盤)處理

OpenSceneGraph (OSG) 中的交互處理,包括鼠標和鍵盤事件。 一、OSG 事件處理體系 OSG 使用一個基于訪問者模式的事件處理體系,核心類包括: osgGA::GUIEventHandler: 所有事件處理器的基類 osgViewer::Viewer: 查看器,管理事件隊列和分發 osgGA::EventQueue: 事件隊列…