wsl搭建zephyr编译环境

Posted by 婷 on March 17, 2025 本文总阅读量

简介

简单的记录下wsl下搭建zephyr编译环境的过程

配置环境

编译zephyr需要得到最小版本分别为

Tool Min.Version
cmake 3.20.5
python 3.10
dtc 1.4.6

而我们的系统除了dtc其他的都需要升级

image-20250302162359337

先更新一下

image-20250302162247908

升级cmake

详情见之前的文章

升级python3

详情见之前的文章

增加kitware源

我的版本是20.04,而官方提到如果不是22.04版本的还需要单独加kitwareapt

image-20250302201109001

安装过程如下

wget https://apt.kitware.com/kitware-archive.sh
sudo bash kitware-archive.sh

image-20250302201704511

image-20250302201720233

安装依赖

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 libmagic1

image-20250302201850490

sudo apt install python3-venv

image-20250302202450850

sudo apt-get install python3.10-venv

image-20250302203730279

获取zephyr代码

创建python的虚拟环境并激活,在虚拟环境中安装west工具

python3 -m venv ~/raspi_zephyr/.venv
source ~/raspi_zephyr/.venv/bin/activate
pip install west

image-20250302203838306

image-20250302234432772

获取zephyr的源码,注意路景观

west init ~/raspi_zephyr
cd ~/raspi_zephyr
west update

image-20250303233704787

image-20250304002810584

update结束

image-20250308120302777

导出cmake的包,这样cmake就可以自动加载构建zephyr应用程序所需的样板代码

west zephyr-export

image-20250308120331676

更新python需要的包

west packages pip --install

image-20250308120406913

image-20250308120535983

安装zephyr sdk

进入zephyr文件夹下,使用west安装sdk

cd zephyr
west sdk install

image-20250308120750302

image-20250308120805612

image-20250308121950414

mcxa156 demo

打算用zephyrmcxa156demo,不过因为我是wsl的环境,所以在烧录flash的操作那一步没进行下去,这个等后面有时间回头看看怎么操作,这里先记录过程。

zephyr提供了一些类似于hello world之类的简单demo,可以点开下面的链接,查看哪些支持的板子

https://docs.zephyrproject.org/latest/boards/index.html#boards=

按照下图的关键词来搜索

image-20250317222129238

搜索后可以看到具体的版子都显示出来了,点击进去,有简单的使用提示

image-20250308162331074

编译代码,生成镜像

west build -b frdm_mcxa156 samples/hello_world

image-20250308162744774

image-20250308162812601

根据zephyr官方的提示,我们的mcxa156板子用的是MCU-Link,所以烧录的话,直接使用下列命令

west flash

不过因为我们是在wsl里面开发,所以得指定设备节点,不然是没法使用的

image-20250308164527684

参考了一个esp32的文档,按道理应该就是用/dev/ttyACM0节点的,不过好像mcxa156使用都是失败的,反正就先记录到这里,等后面有空回头来解决这个问题

west flash --frdm_mcxa156-device  /dev/ttyACM0
west flash --mcxa156-device  /dev/ttyACM0

raspi 4b

接下来记录树莓派4B板子的demo使用过程

找到我们的boardname,这里是rpi_4b

image-20250309112747785

rm -rf build
west build -b rpi_4b samples/hello_world

image-20250309113148960

拷贝我们的bin文件出来

cp build/zephyr/zephyr.bin /d/ubuntu_swap/

image-20250309113308219

放到树莓派的SD卡,如下,zephyr demo启动成功

image-20250309113416269

参考链接

待办事项

  • 写一个简单的zephyr demo

  • 配置zephyr,使其拥有shell界面,如同linux的命令行一样

  • 上述zephyr的下载过程实在是太繁琐了,而且编译还依赖zephyrSDK,感觉就跟用MDK软件之类的没啥区别,所以看看有没有简单的配置流程