泰凌微电子Zephyr编译环境搭建

描述

 

如上文所介绍,Telink Zephyr是由社区的Zephyr仓库fork而来的,用于维护我们在社区的内容,并开发新的功能。若要查看 Telink Zephyr 最新的开发内容,可以查看位于GitHub上telink-semi的Zephyr仓库的develop 分支:

https://github.com/telink-semi/zephyr

目前,Telink Zephyr基于社群有以下两个Zephyr版本:

telink_matter_v1.0-branch分支,它不低于Zephyr 3.0.0,不高于Zephyr 3.1.99,需要安装并适配社群的zephyr-0.13.2或者zephyr-0.14.2工具链;

以及develop和telink_matter分支,当前基于的是Zephyr3.2.99,必须安装并适配社群的zephyr-0.15.2-sdk工具链。

之所以会存在两个Zephyr版本,是为了满足对Matter项目的开发与应用的需求。比如,telink_matter_v1.0-branch分支保留了对Matter V1.0 Release的版本(即v1.0-branch分支)的支持,并且不断进行bugfix,让设备厂商们可以比较稳定地用于模组、设备和产品上的应用开发。而telink_matter分支是紧跟Matter V1.1版本(即connectedhomeip的master分支)的开发而不断更新的。由于Matter的新版本将于今年的Q1~Q2进行release,因此,上述分支的更新和修改较为频繁,适合对尝试Matter新特性有兴趣的开发者。

接下来,将先后介绍两者的编译环境的配置步骤。

适配Matter V1.0-branch分支的Telink Zephyr

配置步骤

配置Telink Zephyr的telink_matter_v1.0-branch分支的过程和社群3.0.0版本的的Getting Started Guide相似,但不完全相同。在进行配置之前,首先确认系统版本为 Ubuntu 20.04LTS,并执行APT更新和升级:

$ sudo apt update

$ sudo apt upgrade

1、安装Zephyr工程所需的依赖项

$ wget https://apt.kitware.com/kitware-archive.sh

$ sudo bash kitware-archive.sh

$ 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

在进行下一步前请确认依赖项的版本已经达到或高于Zephyr所需的最小版本:

CMake (3.20.0),

$ cmake --version

Python3 (3.6),

$ python3 --version

Devicetree compiler (1.4.6).

$ dtc --version

2、安装Zephyr的west多仓库管理工具

$ pip3 install --user -U west

$ echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc

$ source ~/.bashrc

确认 ~/.local/bin 在 $PATH 环境变量上

3、获取Zephyr源码与配置工程

$ west init -m https://github.com/telink-semi/zephyr --mr telink_matter_v1.0-branch ~/zephyrproject

注意:此处 -m参数是指定了从Telink的zephyr仓库进行拉取,-mr参数指定了将要拉取的分支名,为telink_matter_v1.0-branch。

$ cd ~/zephyrproject

$ west update

注意:在切换zephyr仓库分支时,请记得执行update指令以更新其他关联的仓库。

$ west zephyr-export

4、为Zephyr安装额外的Python依赖项

$ pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt

5、安装社区v0.13.2版本工具链

下载Zephyr工具链(1.2GB)到本地目录。

$ cd ~

$ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.13.2/zephyr-sdk-0.13.2-linux-x86_64-setup.run

$ chmod +x zephyr-sdk-0.13.2-linux-x86_64-setup.run

$ ./zephyr-sdk-0.13.2-linux-x86_64-setup.run -- -d ~/zephyr-sdk-0.13.2

注意:在安装完成以后您不能直接移动这个SDK。若想要挪动到其他路径,请将安装后的文件夹移动过去,并重新使用zephyr-sdk-0.13.2-linux-x86_64-setup.run进行配置。

6、验证配置是否完成

$ cd ~/zephyrproject/

$ west build -p auto -b tlsr9518adk80d zephyr/samples/hello_world -d build_helloWorld

这一步可以尝试编译hello_world示例,构建出的二进制文件zephyr.bin将会生成在build_helloWorld/zephyr文件夹中。

7、 配置Zephyr环境的脚本

若想要在zephyrproject文件夹外,比如Matter工程路径中执行west build命令,需要配置Zephyr的环境:

$ source ~/zephyrproject/zephyr/zephyr-env.sh

建议将以上配置加入shell的配置文件中自启动:

$ echo "source ~/zephyrproject/zephyr/zephyr-env.sh" >> ~/.bashrc

然后执⾏以下命令让 shell 环境⽴刻更新:

$ source ~/.bashrc

适配Matter master分支的Telink Zephyr

配置步骤

配置Telink Zephyr的telink_matter分支的过程和社群latest版本(3.2.99)的Getting Started Guide相似,但不完全相同。在进行配置之前,依然要确认系统版本为 Ubuntu 20.04LTS,并执行APT更新和升级:

$ sudo apt update

$ sudo apt upgrade

1、安装Zephyr工程所需的依赖项

$ wget https://apt.kitware.com/kitware-archive.sh

$ sudo bash kitware-archive.sh

$ 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

在进行下一步前请确认依赖项的版本已经达到或高于Zephyr所需的最小版本:

CMake (3.20.0),

Python3 (3.8),

Devicetree compiler (1.4.6).

2、安装Zephyr的west多仓库管理工具

$ pip3 install --user -U west

$ echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc

$ source ~/.bashrc

确认 ~/.local/bin 在 $PATH 环境变量上

3、获取Zephyr源码与配置工程

$ west init -m https://github.com/telink-semi/zephyr --mr telink_matter ~/zephyrproject

注意:此处 -m参数是指定了从Telink的zephyr仓库进行拉取,-mr参数指定了将要拉取的分支名,为telink_matter。若有需要,也可以换成develop分支以检查最新特性。

$ cd ~/zephyrproject

$ west update

注意:在切换zephyr仓库分支时,请记得执行update指令以更新其他关联的仓库。

$ west blobs fetch hal_telink

注意:该命令将会更新我们公司的HAL仓库,适用于develop和telink_matter分支。

$ west zephyr-export

4、为Zephyr安装额外的Python依赖项

$ pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt

5、安装社区v0.13.2版本工具链

下载Zephyr工具链(1.6GB)到本地目录。

$ cd ~

$ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.2/zephyr-sdk-0.15.2_linux-x86_64.tar.gz

$ wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.2/sha256.sum | shasum --check --ignore-missing

$ tar xvf zephyr-sdk-0.15.2_linux-x86_64.tar.gz

$ zephyr-sdk-0.15.2

$ ./setup.sh -t riscv64-zephyr-elf -h -c

注意:在安装完成以后您不能直接移动这个SDK。若想要挪动到其他路径,请将安装后的文件夹移动过去,并重新使用./setup.sh进行配置。

6、验证配置是否完成

$ cd ~/zephyrproject/

$ west build -p auto -b tlsr9518adk80d zephyr/samples/hello_world -d build_helloWorld

这一步可以尝试编译hello_world示例,构建出的二进制文件zephyr.bin将会生成在build_helloWorld/zephyr文件夹中。

7、配置Zephyr环境的脚本

若想要在zephyrproject文件夹外,比如Matter工程路径中执行west build命令,需要配置Zephyr的环境:

$ source ~/zephyrproject/zephyr/zephyr-env.sh

建议将以上配置加入shell的配置文件中自启动:

$ echo "source ~/zephyrproject/zephyr/zephyr-env.sh" >> ~/.bashrc

然后执⾏以下命令让 shell 环境⽴刻更新:

$ source ~/.bashrc

 

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分