一.概述 Zephyr支持在Windows、Linux和MacOS環境下開發,這裡只介紹如何在Windows下搭建zephyr的開發環境。 二.步驟 2.1安裝msys2 msys2是一個Linux模擬環境,類似於ArchLinux。 安裝完成後,要添加源(這與Linux環境是類似的),這裡我添加的 ...
一.概述
Zephyr支持在Windows、Linux和MacOS環境下開發,這裡只介紹如何在Windows下搭建zephyr的開發環境。
二.步驟
2.1安裝msys2
msys2是一個Linux模擬環境,類似於ArchLinux。
安裝完成後,要添加源(這與Linux環境是類似的),這裡我添加的是清華大學的源,修改C:\msys64\etc\pacman.d\mirrorlist.mingw32,在開始處加入以下一行:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
修改C:\msys64\etc\pacman.d\mirrorlist.mingw64,在開始處加入以下一行:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
修改C:\msys64\etc\pacman.d\mirrorlist.msys,在開始處加入以下一行:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
安裝完成後會看到有三種啟動方式,分別是MSYS2 MinGW 32-bit、MSYS2 MinGW 64-bit和MSYS2 MSYS,這裡要選擇MSYS2 MSYS這種。
2.2安裝依賴
啟動MSYS2 MSYS後,分別執行以下命令:
pacman -Syu pacman -S git cmake make gcc dtc diffutils ncurses-devel python3 gperf
2.3編譯安裝Ninja
分別執行以下命令:
git clone git://github.com/ninja-build/ninja.git && cd ninja git checkout release ./configure.py --bootstrap cp ninja.exe /usr/bin/
2.4下載Zephyr源碼
這裡下載到~/work目錄下,執行以下命令:
cd ~/work git clone --config core.autocrlf=false https://github.com/zephyrproject-rtos/zephyr.git
2.5安裝相關python模塊
zephyr里有很多python腳本,因此需要安裝所需的模塊:
curl -O 'https://bootstrap.pypa.io/get-pip.py' ./get-pip.py rm get-pip.py cd ~/work/zephyr pip install --user -r scripts/requirements.txt
2.6安裝交叉工具鏈
這裡我以ARM(Cortex M系列)平臺作為學習,所以需要安裝arm交叉工具鏈,建議安裝7.x版本的,用最新的8.x版本的會編譯出錯。我選擇安裝在C:\gnuarmemb目錄下。
2.7編譯應用
設置環境變數:
export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb export GNUARMEMB_TOOLCHAIN_PATH=/c/gnuarmemb unset ZEPHYR_SDK_INSTALL_DIR
如果不想每次運行MSYS2 MSYS後都手動輸入以上命令,那麼可以將以上命令添加到C:\msys64\home\lkn\.bash_profile文件。
我的開發板主控是nrf52832,這裡以編譯最簡單的hello_world程式(串口列印出hello world等字元)為例:
cd ~/work/zephyr source zephyr-env.sh cd samples/hello_world mkdir build cd build cmake -GNinja -DBOARD=nrf52_pca10040 .. ninja
編譯成功的話會如下圖所示:
編譯生成的文件在./zephyr目錄下,可以看到有zephyr.elf、zephyr.bin和zephyr.hex三種格式的固件。
2.8安裝固件下載、調試工具
2.8.1安裝Jlink
2.8.2安裝nRF5x-Command-Line-Tools
這是Nordic對Jlink的封裝,是專門針對Nordic的晶元的,主要用於擦除flash、燒寫固件等操作。安裝後會有nrfjprog.exe文件,然後將該文件所在的目錄添加到系統環境變數中。
2.9在開發板上運行zephyr
打開cmd視窗,進入到固件生成的目錄下,給開發板上電,連接好jlink調試器,連接好串口。
下載固件到開發板:
nrfjprog -f nrf52 --program zephyr.hex --sectorerase
讓程式跑起來(複位系統):
nrfjprog -f nrf52 --reset
這時可以看到串口輸出如下:
說明zephyr系統已經在開發板上成功跑起來了。