目录
1 前言
Zephyr支持Ubuntu,macOS,Windows环境下开发,本文介绍基于Ubuntu的环境搭建,包括:
- Ubuntu开发环境搭建,主要是工具和相关依赖的安装
- 获取工程源码
- 编辑,烧录已经运行Demo
2 安装主机依赖
- 官方指导建议使用Ubuntu version 18.04 LTS 及以上
1)下载并执行Kitware archive script,将Kitware APT repository添加至源
wget https://apt.kitware.com/kitware-archive.sh
sudo bash kitware-archive.sh
2)安装所需的依赖
sudo apt install --no-install-recommends git cmake ninja-build gperf \
ccache dfu-util device-tree-compiler wget \
python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
make gcc gcc-multilib g++-multilib libsdl2-dev
3)确认主要依赖版本是否满足要求
3 获取源码
1)安装west工具,并设置路径:~/.local/bin到环境变量PATH
// 安装west
pip3 install --user -U west
// 设置~/.local/bin到环境变量
PATH echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
//立即生效
source ~/.bashrc
2)获取Zephyr源码
west init ~/zephyrproject
cd ~/zephyrproject
west update
- west init ~/zephyrproject
该命令主要功能是从github.com/zephyrproject-rtos/zephyr clone代码至~/zephyrproject
- west update
- 会从~/zephyrproject/zephyr/west.yml中获取相关子仓库url
- 将url依次git clone至设置路径中
PS:github国内访问很不稳定,可以设置代理或者修改west.yml文件中的url从国内的zephyr镜像下载。
3)导出Cmake package
west zephyr-export
4)安装zephyr/scripts/requirements.txt文件中指明的其他Python依赖
pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt
4 安装工具链
1)下载最新的SDK安装程序
- 可以直接使用west从仓库下载
//这里为什么下载到路径~中,后面会提到
cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.13.1/zephyr-sdk-0.13.1-linux-x86_64-setup.run
- 也可以直接在windows下,Releases · zephyrproject-rtos/sdk-ng (github.com)
2)运行,安装SDK至~/zephyr-sdk-0.13.1
chmod +x zephyr-sdk-0.13.1-linux-x86_64-setup.run ./zephyr-sdk-0.13.1-linux-x86_64-setup.run -- -d ~/zephyr-sdk-0.13.1
- SDK建议安装在以下路径中:
$HOME/zephyr-sdk[-x.y.z] $HOME/.local/zephyr-sdk[-x.y.z] $HOME/.local/opt/zephyr-sdk[-x.y.z] $HOME/bin/zephyr-sdk[-x.y.z] /opt/zephyr-sdk[-x.y.z] /usr/zephyr-sdk[-x.y.z] /usr/local/zephyr-sdk[-x.y.z]
- 如果非指定路径,需按如下添加环境变量至~/.bashrc,然后执行source ~/.bashrc
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr export ZEPHYR_SDK_INSTALL_DIR= 绝对路径 //例如zephyr-sdk-0.13.1安装路径为 /home/conor/study //export ZEPHYR_SDK_INSTALL_DIR=/home/conor/study
3)安装udev规则
sudo cp ~/zephyr-sdk-0.13.1/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d
sudo udevadm control --reload
5 编译一个Demo
- 开发板使用ST Nucleo l476RG,demo使用samples/basic/blinky
//跳转到zephyrproject/zephyr目录下
cd ***/zephyrproject/zephyr
//指定board为nucleo_l476rg
west build -b nucleo_l476rg samples/basic/blinky
- 编程结果都保持至zephyrproject\zephyr\build\zephyr下