1276 字
6 分鐘

【作業系統實驗】Zephyr 開發環境建置 & Hello World

2026-03-01
瀏覽量 載入中...

前言#

為什麼會寫這篇文章呢?首先是這學期(114-2)修習了蔡智強教授的【作業系統實驗】,第一堂課安裝環境似乎就有不少同學遇到問題,想說把我的安裝過程記錄一下。

再者,我上課的時候 Zephyr 的官方 Getting Started Guide 寫的 Python 版本要求是 3.10 以上,所以我當時就建了 3.10 的 virtual environment,結果過個幾天再上去看,文檔就變成 3.12 了…想說既然要重弄環境,就正好寫成部落格文章。

我其實也在思考所謂教學文要怎麼寫比較好,以往我的做法比較偏向是手把手教,但這樣會使文章過於冗長。而且毫無限度地往文章加入細節,也會增加我寫作的難度,到最後我也會懶得更新。

這篇文章會採用比較類似筆記的方式,把重點點出。如果其中某個步驟不太明白,可以把文章貼給 AI,通常應該可以得到解答。如果實際是無法解決,也歡迎在文章底下留言。

我們會安裝哪些工具?做什麼用的#

  • uv:Python 環境/套件管理工具,他有很多功能,今天主要是用它來創立 Python 虛擬環境(今天會根據文檔,創一個 3.12 版的虛擬環境)(詳細介紹請見地表最快的 Python 管理工具 uv!PDM、pipx 的功能一手包辦
  • winget:Windows 的套件管理工具,應該不少 Windows 11 的電腦有內置,沒內建的話可以上網搜尋一下怎麼在你的電腦中安裝 winget。
  • git:版本控制工具,專案開發幾乎不可或缺的工具。不過今天我們不會手動使用 git 本身,而是會交由 west 來自動操作。
  • west:Zephyr 官方的 Meta-tool(Meta tool 就是「元工具」的意思,也就是「用來管理其他工具」的工具),是作為一個 Python 套件發佈的,我們稍後會需要在 Python 環境中安裝它。它主要的功能是自動呼叫電腦中的 git,抓取數十甚至上百個 Zephyr 各個部件的程式碼、驅動,並且切換到正確的版本。
  • Zephyr SDK:Zephyr 的開發套件,稍後 west sdk install 會自動安裝。
  • STM32CubeProgrammer:STMicroelectronics 提供的程式燒錄工具,用來將程式燒錄到 STM32 微控制器上。雖然我們不會手動使用,但 west flash 指令會在背後用到它。所以還是要安裝。
  • VS Code 及套件
    • C/C++:VS Code 的 C/C++ 套件,用來提供 IntelliSense、Debug 等功能。
    • Zephyr IDE (作者 mylonics)
    • Serial Monitor (作者 Microsoft):要注意的是這插件是微軟獨佔的,所以如果你用的是 Cursor 或是 Antigravity 等用 VS Code 去分支修改的編譯器,可能裝不到這插件。

1. Windows Update#

根據官方文檔,最好先去「設定」→「更新與安全性」→ Windows Update 檢查一下有沒有更新,把系統安裝到最新可以避免一些奇怪的驅動問題。

2. winget 相關#

  1. 首先確保你的系統裡有 winget,你可以打開終端機輸入 winget --version 來確認。如果正常輸出版本號,沒有報錯的話,代表你已經有裝 winget 了。
  2. 輸入以下指令以安裝包含 CMake、Ninja、gperf、Git、wget、7zip 這些重要的軟體。
Terminal window
winget install Kitware.CMake Ninja-build.Ninja oss-winget.gperf Git.Git oss-winget.dtc wget 7zip.7zip

3. 安裝 STM32CubeProgrammer#

建議直接到 ST 官網下載:連結。似乎需要登入才能下載,就註冊一下吧!下載安裝完放著就行。

4. uv/Python 相關#

安裝 uv 工具,可以上網搜尋 uv 的安裝方法,或者參考地表最快的 Python 管理工具 uv!PDM、pipx 的功能一手包辦

5. 重開機#

重開機一下,我們剛剛安裝了很多軟體還有 uv 工具,重開機可以確保環境變數有正常被讀取到。

6. 敲指令時間!#

以下假設 <PROJECT_PATH> 是你的專案資料夾路徑。比如講你在 D 槽創建了一個空白資料夾叫 my_project,則 <PROJECT_PATH> 就是 D:\my_project

打開一個終端機(我這邊用的是 Powershell):

Terminal window
cd <PROJECT_PATH> # cd 到專案的空白資料夾內
uv init --python 3.12 # 初始化 Python 環境
uv add west # 安裝 west 套件
# 將 west 要用的環境準備好
uv run west init
uv run west update
uv run west zephyr-export
uv add -r zephyr/scripts/requirements.txt
# 安裝 Zephyr SDK
## cd 到專案資料夾底下的 zephyr 資料夾
cd <PROJECT_PATH>\zephyr
uv run west sdk install
# 試跑 hello-world 程式,一樣是在 zephyr 資料夾內輸入
## 編譯,記得要把板子插上電腦
### 指令:uv run west build -p always -b <版子的型號> <要編譯的程式路徑>
### 這堂課的板子用的是 b_l4s5i_iot01a
uv run west build -p always -b b_l4s5i_iot01a samples\hello_world
## 刷機
uv run west flash

7. 打開 VS Code,按下 Ctrl + `#

你應該會看到一個終端機的視窗出現在下方,像這樣:

VSCode終端機截圖

切換到「連接埠」(或者你是英文介面的話,叫 Serial Monitor),就可以設定為板子連接的 COM 接口,看看板子的輸出了!

【作業系統實驗】Zephyr 開發環境建置 & Hello World
https://blog.pytreedao.com/posts/oslab2026-helloworld/
作者
Pytree
發布於
2026-03-01
許可協議
CC BY-NC-SA 4.0
最後更新於 2026-03-01

評論區

目錄