westを使ったZephyrプロジェクトの管理

はじめに

Zephyr 1.14からwestというメタツールが公式なツールになりました。 面倒ですがさらっと使っておきましょう。

ソースコードやドキュメントは、できるだけ1.14を参照するようにします。 Zephyr 1.14はLTSという位置づけで、2年間はセキュリティアップデートが保証されます。

Getting Started

docs.zephyrproject.org

SDKのバージョンが更新されており、古いSDKではビルドできないので、新しいものをインストールします。

wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.10.0/zephyr-sdk-0.10.0-setup.run
cd <sdk download directory>
sh zephyr-sdk-0.10.0-setup.run
$ cat ~/.zephyrrc 
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
export ZEPHYR_SDK_INSTALL_DIR="/opt/zephyr-sdk"

次に、westのインストールです。

pip3 install --user west

westを使ってZephyr(と関連ツール)レポジトリを取得します。

west init zephyrproject
cd zephyrproject
west update

$ ls
modules  net-tools  zephyr

Zephyrのversionを指定する場合は、init時に指定します。

west init -m https://github.com/zephyrproject-rtos/zephyr --mr v1.14.0 zephyrproject
cd zephyrproject
west update

ビルド

westを使ってビルドしてみます。

$ west -v build -b nrf52840_pca10056 samples/hello_world

$ ls build/
app             CMakeFiles           rules.ninja  zephyr_modules.txt
build.ninja     cmake_install.cmake  tinycbor
CMakeCache.txt  Kconfig.modules      zephyr

なるほど、これでビルドできるようです。

デフォルトのターゲットを設定することもできます。

west config build.board nrf52840_pca10056
$ west build samples/hello_world/
ERROR: this looks like a new or clean build, please provide --board
FATAL ERROR: refusing to proceed without --force due to above error

あれぇ〜、ダメじゃん?

デバッグ

JLinkデバッガのラッパーコマンドもあります。

west debug --runner jlink
west debugserver --runner jlink