はじめに
2025年3月にリリースされたZephyr 4.1.0でIAR Arm Toolchainが実験的に使えるようになりました。
https://docs.zephyrproject.org/latest/releases/release-notes-4.1.html

本記事では、IAR Arm ToolchainでZephyrのサンプルプロブラムをビルドし、ボード上で動作させてみます。
使用したボード
NXP社のFRDM-MCXN947を使用します。
https://www.nxp.jp/design/design-center/development-boards-and-designs/FRDM-MCXN947
Zephyrはこのボードで動作します。
https://docs.zephyrproject.org/latest/boards/nxp/frdm_mcxn947/doc/index.html
上記ページの手順でGNUツールチェインでビルドしてフラッシュメモリへ書き込み、Zephyrが動作していることを前提に、以下の説明を進めます。
開発環境構築
Windows上でビルドするための開発環境を構築します。
(Linuxでもビルドできるかもしれませんが、試していません。)
IAR Embedded Workbench for Armのインストール
IAR Embedded Workbench for Armを入手してインストールしてください。
商用ツールなので、ライセンスを購入するか無償評価版をお試しください。
詳細は専門家に相談してください。
https://www.iar.com/ja/embedded-development-tools/iar-embedded-workbench

注意!
v9.70以上のIAR Embedded Workbench for Armをインストールしてください。
https://docs.zephyrproject.org/latest/develop/toolchains/iar_arm_toolchain.html#toolchain-iar-arm

Zephyrの開発環境のインストールと設定
Getting Started GuideのWindowsのタブを表示して、その手順通りにツールのインストールや設定を行ってください。
Getting Started Guide
https://docs.zephyrproject.org/latest/develop/getting_started/index.html

Install the Zephyr SDKまで実行してください(サンプルのビルド以降は実行しないでください)。

Zephyrのビルド
ZephyrのサンプルプログラムをIARツールチェインでビルドします。
環境変数の設定
IARツールチェインでビルドするための環境変数を設定します。
https://docs.zephyrproject.org/latest/develop/toolchains/iar_arm_toolchain.html#toolchain-iar-arm

IAR_LMS_BEARER_TOKENはライセンス内容に応じて設定してください。
ビルド
west buildコマンドでサンプルhello_worldをビルドします。
(コマンドはGNUツールチェインでビルドするときと同じです。)

IARツールチェインでビルドされているかの確認
ビルドの手順でビルドしたバイナリzephyr.elfをLinuxにコピーしてreadelfコマンドで.commentセクションを確認します。

IAR ELF Linkerの文字があり、IARツールチェインでビルドされています。

ボードへの書き込み
PCとボードのJ17のUSB Type-Cを接続し、west flashコマンドでフラッシュメモリへ書き込みます。
実行結果
コードサイズ比較
以下は、サンプルプログラムhello_worldをIARツールチェインとGNUツールチェインでビルドしたときのコードサイズです。IARツールチェインでのビルドが現時点でexperimentalであること、また最適化のオプションがあるかもしれないので、参考情報としてください。
IARツールチェインでビルドしたサンプルプログラムのサイズ
ビルド後に生成されたzephyr.mapをテキストファイルで開きます。
次の記述がありました。

GNUツールチェインでビルドしたサンプルプログラムのサイズ
GUNUツールチェインで同じサンプルプログラムをビルドします。
ビルドコマンドを完了時にコードサイズが表示されていました。

まとめ
Zephyrのhello_worldサンプルプログラムをIARツールチェインでビルドして動作させました。
現時点で、Zephyr ProjectのアップストリームにおけるIARツールチェインでのビルドはexperimentalという扱いですが、IARシステムズはZephyr Projectのメンバーで活発に活動しています※。今後のZephyr Projectでの活躍が期待できます。
※海外だけでなく日本法人でも日本語でブログを掲載したり、ウェビナーを開催しています。
今後、他のサンプルプログラムや他のボードでの動作を確認してみたいと思います。




