如上文所介紹,Telink Zephyr是由社區(qū)的Zephyr倉庫fork而來的,用于維護(hù)我們在社區(qū)的內(nèi)容,并開發(fā)新的功能。若要查看 Telink Zephyr 最新的開發(fā)內(nèi)容,可以查看位于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分支,當(dāng)前基于的是Zephyr3.2.99,必須安裝并適配社群的zephyr-0.15.2-sdk工具鏈。
之所以會存在兩個Zephyr版本,是為了滿足對Matter項(xiàng)目的開發(fā)與應(yīng)用的需求。比如,telink_matter_v1.0-branch分支保留了對Matter V1.0 Release的版本(即v1.0-branch分支)的支持,并且不斷進(jìn)行bugfix,讓設(shè)備廠商們可以比較穩(wěn)定地用于模組、設(shè)備和產(chǎn)品上的應(yīng)用開發(fā)。而telink_matter分支是緊跟Matter V1.1版本(即connectedhomeip的master分支)的開發(fā)而不斷更新的。由于Matter的新版本將于今年的Q1~Q2進(jìn)行release,因此,上述分支的更新和修改較為頻繁,適合對嘗試Matter新特性有興趣的開發(fā)者。
接下來,將先后介紹兩者的編譯環(huán)境的配置步驟。
適配Matter V1.0-branch分支的Telink Zephyr
配置步驟
配置Telink Zephyr的telink_matter_v1.0-branch分支的過程和社群3.0.0版本的的Getting Started Guide相似,但不完全相同。在進(jìn)行配置之前,首先確認(rèn)系統(tǒng)版本為 Ubuntu 20.04LTS,并執(zhí)行APT更新和升級:
$ sudo apt update
$ sudo apt upgrade
1、安裝Zephyr工程所需的依賴項(xiàng)
$ 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
在進(jìn)行下一步前請確認(rèn)依賴項(xiàng)的版本已經(jīng)達(dá)到或高于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
確認(rèn) ~/.local/bin 在 $PATH 環(huán)境變量上
3、獲取Zephyr源碼與配置工程
$ west init -m https://github.com/telink-semi/zephyr --mr telink_matter_v1.0-branch ~/zephyrproject
注意:此處-m參數(shù)是指定了從Telink的zephyr倉庫進(jìn)行拉取,-mr參數(shù)指定了將要拉取的分支名,為telink_matter_v1.0-branch。
$ cd ~/zephyrproject
$ west update
注意:在切換zephyr倉庫分支時,請記得執(zhí)行update指令以更新其他關(guān)聯(lián)的倉庫。
$ west zephyr-export
4、為Zephyr安裝額外的Python依賴項(xiàng)
$ pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt
5、安裝社區(qū)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進(jìn)行配置。
6、驗(yàn)證配置是否完成
$ cd ~/zephyrproject/
$ west build -p auto -b tlsr9518adk80d zephyr/samples/hello_world -d build_helloWorld
這一步可以嘗試編譯hello_world示例,構(gòu)建出的二進(jìn)制文件zephyr.bin將會生成在build_helloWorld/zephyr文件夾中。
7、 配置Zephyr環(huán)境的腳本
若想要在zephyrproject文件夾外,比如Matter工程路徑中執(zhí)行west build命令,需要配置Zephyr的環(huán)境:
$ source ~/zephyrproject/zephyr/zephyr-env.sh
建議將以上配置加入shell的配置文件中自啟動:
$ echo "source ~/zephyrproject/zephyr/zephyr-env.sh" >> ~/.bashrc
然后執(zhí)?以下命令讓 shell 環(huán)境?刻更新:
$ source ~/.bashrc
適配Matter master分支的Telink Zephyr
配置步驟
配置Telink Zephyr的telink_matter分支的過程和社群latest版本(3.2.99)的Getting Started Guide相似,但不完全相同。在進(jìn)行配置之前,依然要確認(rèn)系統(tǒng)版本為 Ubuntu 20.04LTS,并執(zhí)行APT更新和升級:
$ sudo apt update
$ sudo apt upgrade
1、安裝Zephyr工程所需的依賴項(xiàng)
$ 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
在進(jìn)行下一步前請確認(rèn)依賴項(xiàng)的版本已經(jīng)達(dá)到或高于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
確認(rèn) ~/.local/bin 在 $PATH 環(huán)境變量上
3、獲取Zephyr源碼與配置工程
$ west init -m https://github.com/telink-semi/zephyr --mr telink_matter ~/zephyrproject
注意:此處-m參數(shù)是指定了從Telink的zephyr倉庫進(jìn)行拉取,-mr參數(shù)指定了將要拉取的分支名,為telink_matter。若有需要,也可以換成develop分支以檢查最新特性。
$ cd ~/zephyrproject
$ west update
注意:在切換zephyr倉庫分支時,請記得執(zhí)行update指令以更新其他關(guān)聯(lián)的倉庫。
$ west blobs fetch hal_telink
注意:該命令將會更新我們公司的HAL倉庫,適用于develop和telink_matter分支。
$ west zephyr-export
4、為Zephyr安裝額外的Python依賴項(xiàng)
$ pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt
5、安裝社區(qū)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進(jìn)行配置。
6、驗(yàn)證配置是否完成
$ cd ~/zephyrproject/
$ west build -p auto -b tlsr9518adk80d zephyr/samples/hello_world -d build_helloWorld
這一步可以嘗試編譯hello_world示例,構(gòu)建出的二進(jìn)制文件zephyr.bin將會生成在build_helloWorld/zephyr文件夾中。
7、配置Zephyr環(huán)境的腳本
若想要在zephyrproject文件夾外,比如Matter工程路徑中執(zhí)行west build命令,需要配置Zephyr的環(huán)境:
$ source ~/zephyrproject/zephyr/zephyr-env.sh
建議將以上配置加入shell的配置文件中自啟動:
$ echo "source ~/zephyrproject/zephyr/zephyr-env.sh" >> ~/.bashrc
然后執(zhí)?以下命令讓 shell 環(huán)境?刻更新:
$ source ~/.bashrc
-
編譯
+關(guān)注
關(guān)注
0文章
661瀏覽量
32961 -
環(huán)境搭建
+關(guān)注
關(guān)注
0文章
54瀏覽量
9069 -
GitHub
+關(guān)注
關(guān)注
3文章
473瀏覽量
16520 -
Zephyr
+關(guān)注
關(guān)注
0文章
22瀏覽量
5985 -
Matter
+關(guān)注
關(guān)注
1文章
227瀏覽量
5759
原文標(biāo)題:【技術(shù)專欄】泰凌微電子Zephyr編譯環(huán)境搭建
文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論