目录
1.更新inux版本20.04.版本
由于博主是20.04版本的ubutun系统,所以就直接在这个上面搭建环境。注意,官方文档用的是18.04版本。
sudo apt update
sudo apt upgrade
如果更新升级过程中出现了某些报错,对应去度娘搜素基本都可以解决的。
比如出现下面图中的错误,则通过
rm -rf /var/lib/apt/lists
apt-get update
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
a.安装cmake
apt install cmake # version 3.23.1-1ubuntu1
ubuntu20.4下安装cmake工具命令。
查询安装后的版本 命令
b.安装python3
由于博主已经安装了python3.8,所以可以直接查看当前版本
python3 --version
c.安装dtc
apt install device-tree-compiler # version 1.5.1-1
这里安装1.5.1.1版本。用
dtc --version
查询是否安装成功。
下载、检查并执行Kitware archive脚本,将Kitware APT存储库添加到源代码列表中。对厨具档案的详细解释。sh可在kitware第三方apt存储库中找到:
wget https://apt.kitware.com/kitware-archive.sh
sudo bash kitware-archive.sh
3.获取zephyr和安装Python依赖
安装west
安装west,设置路径:~/.local/bin到环境变量PATH,
pip3 install --user -U west
echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
source ~/.bashrc
获取zephyr源码
west init ~/zephyrproject
cd ~/zephyrproject
west update
执行west update后出现了下面的报错:
ERROR: update failed for projects: canopennode, hal_altera,
hal_espressif, hal_gigadevice, hal_telink, hal_xtensa, littlefs,
loramac-node, lvgl, mbedtls, nanopb, segger, sof, tinycbor, TraceRecorderSource,
trusted-firmware-m, tf-m-tests, psa-arch-tests
出现这个错误怎么解决呢,一直运行west update,知道全部更新完成不报错。
导出Cmake package
west zephyr-export
安装Python依赖
pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt
4.安装工具链
4.1 下载最新的sdk包
cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.1/zephyr-sdk-0.14.1_linux-x86_64.tar.gz
wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.1/sha256.sum | shasum --check --ignore-missing
4.2 解压下载的sdk包
tar xvf zephyr-sdk-0.14.1_linux-x86_64.tar.gz
建议把sdk包提取到下面的路径
$HOME
$HOME/.local
$HOME/.local/opt
$HOME/bin
/opt
/usr/local
Zephyr SDK捆绑包存档包含Zephyr-SDK-0.14.1目录,在$HOME下提取时,生成的安装路径将是$HOME/Zephyr-SDK-0.14.1。
4.3 运行sdk包下的setup脚本
cd zephyr-sdk-0.14.1
./setup.sh
提取Zephyr SDK包后,只需运行一次安装脚本。
如果在初始安装后重新定位Zephyr SDK捆绑包目录,则必须重新运行安装脚本。
4.4 安装udev规则
sudo cp ~/zephyr-sdk-0.14.1/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d
sudo udevadm control --reload
5.编译
这里用hello world为例进行测试。
用x86模拟板进行测试:
cd /root/zephyrproject/zephyr/samples/hello_world/
mkdir build && cd build
# Use cmake to configure a Ninja-based build system:
cmake -GNinja -DBOARD=qemu_x86 ..
# Now run ninja on the generated build system:
ninja
ninja run
最后用ctrl+a退出模拟器。
cmake -DBOARD=nrf5340dk_nrf5340_cpuapp_ns