2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

商用コンパイラでZephyr RTOS

Posted at

はじめに

2025年3月にリリースされたZephyr 4.1.0でIAR Arm Toolchainが実験的に使えるようになりました。

https://docs.zephyrproject.org/latest/releases/release-notes-4.1.html
zephyr_release_4.1.0.png

本記事では、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

zephyr_FRDM-MCXN947.png

上記ページの手順で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
IAR_EMBEDDED_WORKBENCH_WEB.png

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

Zephyrの開発環境のインストールと設定

Getting Started GuideのWindowsのタブを表示して、その手順通りにツールのインストールや設定を行ってください。

Getting Started Guide
https://docs.zephyrproject.org/latest/develop/getting_started/index.html
Zephyr_GettingStartedGuide1.png

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

Zephyrのビルド

ZephyrのサンプルプログラムをIARツールチェインでビルドします。

環境変数の設定

IARツールチェインでビルドするための環境変数を設定します。

https://docs.zephyrproject.org/latest/develop/toolchains/iar_arm_toolchain.html#toolchain-iar-arm
環境変数設定_Zephyrドキュメント.png

IAR_LMS_BEARER_TOKENはライセンス内容に応じて設定してください。

当方で実行した手順はこちら
環境変数設定.png

ビルド

west buildコマンドでサンプルhello_worldをビルドします。
(コマンドはGNUツールチェインでビルドするときと同じです。)
west_build1.png

ビルドが完了すると次のような表示になります。
west_build2.png

IARツールチェインでビルドされているかの確認

ビルドの手順でビルドしたバイナリzephyr.elfをLinuxにコピーしてreadelfコマンドで.commentセクションを確認します。
readelf.png

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

ボードへの書き込み

PCとボードのJ17のUSB Type-Cを接続し、west flashコマンドでフラッシュメモリへ書き込みます。

west_flash.png

実行結果

hello_world.png

コードサイズ比較

以下は、サンプルプログラムhello_worldをIARツールチェインとGNUツールチェインでビルドしたときのコードサイズです。IARツールチェインでのビルドが現時点でexperimentalであること、また最適化のオプションがあるかもしれないので、参考情報としてください。

IARツールチェインでビルドしたサンプルプログラムのサイズ

ビルド後に生成されたzephyr.mapをテキストファイルで開きます。
次の記述がありました。
コードサイズ_IAR.png

GNUツールチェインでビルドしたサンプルプログラムのサイズ

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

まとめ

Zephyrのhello_worldサンプルプログラムをIARツールチェインでビルドして動作させました。

現時点で、Zephyr ProjectのアップストリームにおけるIARツールチェインでのビルドはexperimentalという扱いですが、IARシステムズはZephyr Projectのメンバーで活発に活動しています※。今後のZephyr Projectでの活躍が期待できます。

※海外だけでなく日本法人でも日本語でブログを掲載したり、ウェビナーを開催しています。

今後、他のサンプルプログラムや他のボードでの動作を確認してみたいと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?