esp-idf版本更新及切換方法

ESP-IDF 版本簡介

ESP-IDF 的 GitHub 倉庫時常更新,特別是用於開發新特性的 master 分支。

如有量產需求,請使用穩定版本。

發佈版本

您可以通過以下鏈接訪問各個版本的配套文檔:

ESP-IDF 在 GitHub 平臺上的完整發布歷史請見 發佈說明頁面。您可以在該頁面查看各個版本的發佈說明、配套文檔及相應獲取方式。

此外,您還可以直接前往文檔頁面,查看部分 ESP-IDF 版本的配套文檔,具體可通過點擊頁面左下角的小三角標誌,在不同版本間切換。

我該選擇哪個版本?

  • 如有量產需求,請使用 最新穩定版本。穩定版本已通過人工測試,後續更新僅修復 bug,主要特性不受影響(更多詳情,請見 版本管理)。
  • 如需嘗試/測試 ESP-IDF 的最新特性,請使用 最新版本(在 master 分支上)。最新版本包含 ESP-IDF 的所有最新特性,已通過自動化測試,但尚未全部完成人工測試(因此存在一定風險)。
  • 如需使用穩定版本中沒有的新特性,但同時又不希望受到 master 分支更新的影響,您可以將一個最適合您的穩定版本 更新至一個預發佈版本更新至一個發佈分支

有關如何更新 ESP-IDF 本地副本的內容,請參考 更新 ESP-IDF 章節。

版本管理

ESP-IDF 採用了 語義版本管理方法,即您可以從字面含義理解每個版本的差異。其中

  • 主要版本(例 v3.0)代表有重大更新,包括增加新特性、改變現有特性及移除已棄用的特性。

    升級至一個新的主要版本(例 v2.1 升級至 v3.0)意味着您可能需要更新您的工程代碼,並重新測試您的工程,具體可參考 發佈說明頁面 的重大變更 (Breaking Change) 部分。

  • 次要版本(例 v3.1)代表有新增特性和 bug 修復,但現有特性不受影響,公開 API 的使用也不受影響。

    升級至一個新的次要版本(例 v3.0 升級至 v3.1)意味着您可能不需要更新您的工程代碼,但需重新測試您的工程,特別是 發佈說明頁面 中專門提到的部分。

  • Bugfix 版本(例 v3.0.1)僅修復 bug,並不增加任何新特性。

    升級至一個新的 Bugfix 版本(例 v3.0 升級至 v3.0.1)意味着您不需要更新您的工程代碼,僅需測試與本次發佈修復 bug(列表見 發佈說明頁面)直接相關的特性。

查看當前版本

查看 ESP-IDF 本地副本的版本,請使用 git 命令:

cd $IDF_PATH
git describe --tags --dirty

此外,由於 ESP-IDF 的版本也已編譯至固件中,因此您也可以使用宏 IDF_VER 查看 ESP-IDF 的版本(以字符串的格式)。ESP-IDF 默認引導程序可以在設備啓動時打印 ESP-IDF 的版本,但注意代碼中的版本信息僅會在源代碼重新編譯時纔會更新,因此打印出來的版本可能並不是最新的。

幾個 ESP-IDF 版本的例子:

版本字符串 含義
v3.2-dev-306-gbeb3611ca
master 分支上的預發佈版本。
- v3.2-dev:爲 v3.2 進行的開發。
- 306:v3.2 開發啓動後的 commit 數量。
- beb3611ca:commit 標識符。
v3.0.2 穩定版本,標籤爲 v3.0.2
v3.1-beta1-75-g346d6b0ea
v3.1 的 beta 測試版本(可參考 更新至一個發佈分支)。
- v3.1-beta1 - 預發佈標籤。
- 75:添加預發佈 beta 標籤後的 commit 數量。
- 346d6b0ea:commit 標識符。
v3.0.1-dirty
穩定版本,標籤爲 v3.0.1
- dirty 代表 ESP-IDF 的本地副本有修改。

Git 工作流

樂鑫 ESP-IDF 團隊的 (Git) 開發工作流程如下:

  • 新的改動總是在 master 分支(最新版本)上進行。master 分支上的 ESP-IDF 版本總帶有 -dev 標籤,表示“正在開發中”,例 v3.1-dev
  • 這些改動將首先在樂鑫的內部 Git 倉庫進行代碼審閱與測試,而後在自動化測試完成後推至 GitHub。
  • 新版本一旦完成特性開發(在 master 分支上進行)並達到進入 beta 測試的標準,則將該版本簽出至一個新分支(例 release/v3.1)。此外,該分支還打上預發佈標籤(例 v3.1-beta1)。您可以在 GitHub 平臺上查看 ESP-IDF 的完整 分支列表標籤列表。Beta 預發佈版本可能仍存在大量“已知問題”(Known Issue)。
  • 隨着對 beta 版本的不斷測試,bug 修復將同時增加至該發佈分支和 master 分支。而且,master 分支可能也已經開始爲下個版本開發新特性了。
  • 當測試快結束時,該發佈分支上將增加一個 rc 標籤,代表候選發佈 (Release Candidate) ,例 v3.1-rc1。此時,該分支仍屬於預發佈版本。
  • 如果一直未發現或報告重大 bug,則該預發佈版本將最終增加“主要版本”(例 v4.0)或“次要版本”標記(例 v3.1),成爲正式發佈版本,並體現在 發佈說明頁面
  • 後續,該版本中發現的 bug 都將在該發佈分支上進行修復。人工測試完成後,該分支將增加一個 bugfix 版本標籤(例 v3.1.1),並體現在 發佈說明頁面

更新 ESP-IDF

請根據您的實際情況,對 ESP-IDF 進行更新。

註解

在參考本指南時,請首先獲得 ESP-IDF 的本地副本,具體步驟請參考 入門指南 中的介紹。

更新至一個穩定發佈版本

(推薦量產用戶)如需更新至一個新的 ESP-IDF 發佈版本,請參考以下步驟:

  • 請定期查看 發佈說明頁面 ,瞭解最新發布情況。
  • 如有新發布的 bugfix 版本(例 v3.0.1v3.0.2)時,請將新的 bugfix 版本更新至您的 ESP-IDF 目錄:
cd $IDF_PATH
git fetch
git checkout vX.Y.Z
git submodule update --init --recursive
  • 如有主要版本或次要版本新發布時,請查看發佈說明中的具體描述,並決定是否升級您的版本。具體命令與上方描述一致。

註解

如果您之前在安裝 ESP-IDF 時使用了 zip 文件包,而非通過 Git 命令,則您將無法使用 Git 命令進行版本升級,此屬正常情況。這種情況下,請重新下載最新 zip 文件包,並替換掉之前 IDF_PATH 下的全部內容。

更新至一個預發佈版本

您也可以將您的本地副本簽出(命令 git checkout)至一個預發佈版本或 rc 版本,具體方法請參考 更新至一個穩定發佈版本 中的描述。

預發佈版本通常不體現在 發佈說明頁面。更多詳情,請查看完整 標籤列表。使用預發佈版本的注意事項,請參考 更新至一個發佈分支 中的描述。

更新至 master 分支

註解

ESP-IDF 中 master 分支上的代碼會時時更新,因此使用 master 分支相當在“流血的邊緣試探”,存在一定風險。

如需使用 ESP-IDF 的 master 分支,請參考以下步驟:

  • 本地簽出至 master 分支:

    cd $IDF_PATH
    git checkout master
    git pull
    git submodule update --init --recursive
    
  • 此外,您還應在後續工作中不時使用 git pull 命令,將遠端 master 上的更新同步到本地。注意,在更新 master 分支後,您可能需要更改項代碼,也可能遇到新的 bug。

  • 如需從 master 分支切換至一個發佈分支或穩定版本,請使用 git checkout 命令。

重要

強烈建議您定期使用 git pullgit submodule update --init --recursive 命令,確保本地副本的及時更新。舊的 master 分支相當於一個“快照”,可能存在未記錄的問題,且無法獲得支持。對於半穩定版本,請參考 更新至一個發佈分支

更新至一個發佈分支>

從穩定性來說,使用“發佈分支”相當於在使用 master 分支和穩定版本之間進行折衷,包含一些 master 分支上的新特性,但也同時保證可通過 beta 測試且基本完成了 bug 修復。

更多詳情,請前往 GitHub 查看完整 標籤列表

舉例,您可以關注 ESP-IDF v3.1 分支,隨時關注該分支上的 bugfix 版本發佈( 例 v3.1.1 等):

cd $IDF_PATH
git fetch
git checkout release/v3.1
git pull
git submodule update --init --recursive

您每次在該分支上使用 git pull 時都相當於把最新的 bugfix 版本發佈更新至您的本地副本中。

註解

發佈分支並不會有專門的配套文檔,建議您使用與本分支最接近的版本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章