說明:
本學筆記基於zephyr 工程版本 2.2.99,主機環境爲ubuntu18.04
詳細內容參考:https://docs.zephyrproject.org/latest/getting_started/index.html
主要記錄學習中遇到的問題
1 ubuntu配置
1.1 ubuntu需求
ubuntu需要使用18.04及以上版本,當時用其他低版本時會出現各種各樣的問題。主要表現在安裝的一些開發工具版本過低。如pip3工具包,zephyr工程的west工具等。本人曾嘗試使用16.04版本搭建開發環境,即使更新源(apt update,apt upgrade)後依然無法安裝最新版的工具。比如west工具在ubuntu16.04中安裝的最新版本是0.62,安裝後在zephyr2.2.99中使用時會出現各樣的問題。而在ubuntu18.04中則不會出現問題。在zephyr文檔中,也強調需要使用18.04及以後的版本。希望其他童鞋不要走彎路。
1.2 準備ubuntu
1.2.1.安裝ubuntu18.04
1.2.2.更新ubuntu
sudo apt update
sudo apt upgrade
1.2.3 安裝工具包
sudo apt install --no-install-recommends git cmake ninja-build gperf
ccache dfu-util device-tree-compiler wget \ python3-pip
python3-setuptools python3-tk python3-wheel xz-utils file \ make gcc
gcc-multilib g+±multilib libsdl2-dev
1.2.4 檢查cmake版本
a.檢查安裝的版本是3.13.1或更高
cmake --version
b.如果不符合版本要求需要手動安裝
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - sudo apt-add-repository ‘deb
https://apt.kitware.com/ubuntu/ bionic main’
sudo apt update
sudo apt install cmake
1.2.5 安裝west工具
pip3 install --user -U west echo ‘export PATH=~/.local/bin:"$PATH"’ >>
~/.bashrc source ~/.bashrc
2 zephyr工程安裝
2.1 下載zephyrproject源碼
cd ~
west init zephyrproject
cd zephyrproject
west update
注意:整個過程非常慢,資源從github下載的,如果能有梯子,建議使用梯子,否則整個過程大概3個小時。
2.2 導出cmake包
west zephyr-export
2.3 使用pip3安裝其他依賴的工具包
pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt
2.4 安裝zephyr的開發工具鏈
下載zephyr-sdk-0.11.2-setup.run到home目錄
cd ~ wget
https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.11.2/zephyr-sdk-0.11.2-setup.run
注意:這個下載非常慢,我嘗試很多次都失敗了。可以將
https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.11.2/zephyr-sdk-0.11.2-setup.run鏈接複製到迅雷,通過迅雷下載非常快。下載好zephyr-sdk-0.11.2-setup.run後,拷貝到你的ubuntu的home目錄中。
2.5 安裝zephyr-sdk-0.11.2-setup.run
chmod +x zephyr-sdk-0.11.2-setup.run
./zephyr-sdk-0.11.2-setup.run – -d ~/zephyr-sdk-0.11.2
2.6 添加變量到.bashrc中
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
export ZEPHYR_SDK_INSTALL_DIR=~/zephyr-sdk-0.11.2
2.7 安裝udev規則文件
sudo cp
${ZEPHYR_SDK_INSTALL_DIR}/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules
/etc/udev/rules.d sudo udevadm control --reload
3 編譯工程
3.1 編譯源碼(我用的是nrf52840DK開發板)
注意:命令執行需要在 zephyrproject/zephyr/ 目錄下,而不是zephyrproject或其他*
west build -p auto -b nrf52840dk_nrf52840 samples/basic/blinky
3.2 編譯完成功,顯示如下內容
[120/125] Linking C executable zephyr/zephyr_prebuilt.elf Memory
region Used Size Region Size %age Used
FLASH: 13120 B 1 MB 1.25%
SRAM: 5224 B 256 KB 1.99%
IDT_LIST: 56 B 2 KB 2.73% [125/125] Linking C executable zephyr/zephyr.elf
3.3 編譯後生成的文件包含在 zephyrproject/zephyr/build/zephyr/ 目錄下:
3.4 燒寫程序到開發板
3.4.1 可以將zephyr.hex拷貝到windows下,通過nRF Connect的Programmer軟件燒寫。
3.4.2 通過ubuntu下的wset工具命令燒寫
west flash
注意:使用這個命令需要在ubuntu下安裝nRF-Command-Line-Tools和j-link驅動,否則報錯
4 安裝nRF-Command-Line-Tools
4.1 下載nRF-Command-Line-Tools(下載後文件:nRFCommandLineTools1070Linuxamd64.tar.gz)
https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Command-Line-Tools/Download#infotabs
4.2 解壓nRFCommandLineTools1070Linuxamd64.tar.gz,包括如下文件:
nRF-Command-Line-Tools_10_7_0_Linux-amd64.deb
JLink_Linux_V662b_x86_64.deb
4.3 通過ubuntu的文件瀏覽器安裝找到上面兩個文件,雙擊安裝
4.4 執行nrfjprog -v命令,如顯示版本號代表安裝成功
4.5 連接j-link到ubuntu
1.虛擬機->可移動設備->SEGGER j-link->連接
2.執行lsusb命令如果現實SEGGER字樣設備,代表j-link已經連接到ubuntu
4.5 在zephyrproject/zephyr下執行west flash命令燒寫程序,顯示如下代表燒寫成功,LED開始閃爍:
結束
如有錯誤歡迎留言