如上文所介绍,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
全部0条评论
快来发表一下你的评论吧 !