近年、組み込み開発の現場においてVisual Studio Code(VS Code)のシェアが急速に拡大しています。2025年の調査では、開発者の75%以上がVS Codeを使用しているというデータもあり、事実上のデファクトスタンダード(業界標準)となっています。
これまでは「コードの編集はVS Codeで行い、ビルドやデバッグは専用IDE(IAR Embedded Workbenchなど)で行う」という使い分けが一般的でした。しかし、IARが提供する公式拡張機能(プラグイン)の登場により、コード作成・編集からビルド、デバッグ、さらには静的解析まで、すべてをVS Code内で完結できるようになりました。
本記事では、VS Code上でIARの強力なビルド・デバッグ環境を最大活用する方法から、DockerやWSLを活用したモダンな開発フロー(Modern Workflow)の実践までを分かりやすく解説します。
VS Code用「IAR拡張機能」の概要と基本構造
IARは公式の拡張機能として、「ビルド」と「デバッグ」の2種類のプラグインを拡張機能マーケットプレイスで提供しています。
- IAR Build(ビルド拡張)
- プロジェクトのビルド、メイク
- C-STATによる静的解析の実行
- ファイルの追加/グループ作成、バッチビルドの管理
- IAR C-Spy Debug(デバッグ拡張)
- シミュレーターや実機(I-jetなど)を用いた高度なデバッグ
- ライブウォッチ、レジスター、スタック、メモリ、トレース等の高度なビュー表示
基本構造と仕組み
VS Codeの基本機能と、Microsoft公式の「C/C++拡張機能」をベースに、IAR拡張機能が連携する構造になっています。ホストPC(またはコンテナ内)に IAR Embedded Workbench (EW)、もしくはビルドツールである BX / CX がインストールされていれば、IARが提供するコマンドラインインターフェースや制御用APIを経由して、VS Code上から使い慣れたIARの機能を直接コントロールできます。
環境構築と使い方
インストール手順
- VS Codeの拡張機能(Marketplace)を開きます。
- 「IAR Tools Extension Pack」 を検索してインストールします。
- これにより、「IAR Build」と「IAR C-Spy Debug」、および最新のライセンス方式(LMSオンクラウド:DW-ARM-C/CX-ARMなど)に必要な「IAR Cloud License Login」が自動で一括インストールされます。
ビルドの実行とプロジェクト管理
VS CodeのサイドバーにIARビルド拡張のアイコンが表示されます。
- 自動検出: プロジェクトのトップ階層に必ずしもファイルがある必要はありません。配下の階層に含まれていれば、拡張機能が自動的にIARプロジェクトを検出します。
- ツールチェーン・構成の選択: 使用するIARツールのバージョン、ワークスペース、プロジェクト、ビルド構成(Debug/Releaseなど)をGUI上で簡単に切り替えられます。
- ビルド・ログ: ツールバーのリビルドボタンを押すと、内蔵ターミナルにEmbedded Workbenchと全く同じビルドログが出力されます。
- バッチビルド: 「New Batch」から複数のプロジェクトを登録し、ドラッグ&ドロップでビルド順序(ライブラリを先にビルドするなど)を入れ替えて一括実行可能です。
⚠️ 注意(仕様上の制限)
現時点では、プロジェクトの「オプション設定(コンパイラオプションの変更など)」はVS Code上からは行えません。設定を変更したい場合は、拡張機能内にあるボタンからワンクリックで「IAR Embedded Workbench」を起動し、そちらで設定を行ってください。
C-STATによる静的解析とレポート生成
IAR Build拡張には、静的解析ツール「C-STAT」の実行機能も統合されています。
- サイドバーの「Run C-STAT」をクリックすると、プロジェクト全体の解析が始まります。
- 検出された問題(ゼロ除算の可能性など)は、VS Codeの「問題(Problems)」タブにルール名とともに一覧表示され、クリックするだけで該当のソースコードへジャンプできます。
- 「HTMLレポートの生成」を実行すれば、ブラウザで詳細な解析レポートを自動確認できます。
高度なC-Spyデバッグ機能
VS Codeの標準的なデバッグ機能(ステップ実行、変数表示、コールスタックなど)に加え、IAR独自の高度なデバッグ機能をVS Code上でフル活用できます。
応用的なブレークポイントの活用
通常のブレークポイントだけでなく、右クリックの編集から以下の高度な条件を設定できます。
- 条件付きブレークポイント: 「ADC_data > 1000」など、特定の条件を満たしたときだけ停止させます。
- ヒットカウント: ループ処理の最後だけ止めたい場合など、指定回数を通過したタイミングで停止させます。
- ログメッセージ(ログポイント): 「ADC_dataの値: {ADC_data}」のように指定すると、プログラムを停止させることなく、変数の値をデバッグコンソールに表示できます。printfデバッグと違い、コードサイズを肥大化させず、処理負荷(オーバーヘッド)をかけずに状態を確認できるため非常に強力です。
充実のデバッグ・ビュー
- ライブウォッチ(Live Watch): 通常のウォッチ式はプログラム停止時しか値を更新しませんが、ライブウォッチは実行中もリアルタイムに変数の値を更新・表示し続けます。
- レジスター(Registers): CPUレジスタや周辺機能(ペリフェラル)のレジスタを表示します。さらに「ユーザーグループ」を作成すれば、自分が注目したいレジスタだけをまとめて1つのビューで監視できます。
- 逆アセンブリビュー(Disassembly): ソースコード上で右クリックして開くことで、アセンブラ(命令単位)でのステップ実行やブレークポイント設定が可能です。
- 割り込みログ & トレース: SWOやETM、シミュレーターを活用し、割り込みの発生ログのサマリ確認や、カバレッジ、プロファイリング(関数の負荷分析)をGUI上で可視化できます。
Modern Workflow:Docker+WSLによる開発・テストの自動化
IARが提供するLinux対応のビルドツール(CX-ARMなど)と公開Dockerコンテナを活用することで、「環境に依存しないモダンな組み込み開発ワークフロー」を構築できます。
構成イメージ
Windows上のWSL(Ubuntu)環境内にDocker環境を構築し、そのコンテナ(IARビルドツールがインストール済み)の中でVS Codeを開いて開発・テストを行います。
- WSL拡張機能 / Dev Containers拡張機能 を使用してコンテナに接続。
- .devcontainer/devcontainer.json をプロジェクトに含めることで、チーム全員が全く同じビルド・デバッグ環境をコンテナとして一瞬で立ち上げられます。
- 最新の「プラットフォームライセンス(LMSオンクラウド)」により、コンテナ内からでもブラウザログイン(二段階認証対応)するだけでスムーズにライセンス認証が可能です。
CMakeとCTestによるテストの自動化
このモダンワークフローでは、ビルドシステムにCMakeを採用し、テストランナーであるCTestを組み合わせます。
CMakeLists.txt 内に enable_testing() および add_test() を記述しておくことで、コードの変更からビルド、そして単体テストの実行・合否判定までをコマンド一つで自動的に完結させることができます。
コンテナ内からの実機デバッグ
「Dockerコンテナ内からは実機のデバッカーが使えないのではないか?」という心配は不要です。Windows側に接続されたIARのハードウェアデバッカー(I-jetなど)を、usbipd というツールを用いてWSL/Dockerコンテナ側にアタッチ(共有)させることで、コンテナ環境からでもVS Code上で実機デバッグ、ステップ実行、ライブウォッチが完全に動作します。
サポートポリシーとコミュニティ(GitHub)
IARのVS Code拡張機能(ビルド/デバッグ)は、GitHubの公開リポジトリでソースコードを含めて公開されています。
- ドキュメント: 拡張機能のスタートページから、Markdown形式で書かれた詳細なドキュメントや技術記事にアクセスできます。
- 問題報告・リクエスト: リポジトリの「Issues」から、不具合の報告や追加機能のリクエストを直接行うことができます。また、他のユーザーから同様の報告がすでに上がっているかどうかもリアルタイムに確認可能です。もちろん、従来のIAR通常サポート窓口へ問い合わせることも可能です。
まとめ
VS Code用のIAR拡張機能を取り入れることで、使い慣れたモダンなエディタ環境と、IARが長年培ってきた強力なビルド・高度なデバッグ機能をシームレスに融合させることができます。さらにDockerやCMakeを組み合わせた「Modern Workflow」へステップアップすることで、開発環境のポータビリティ向上や、テストの自動化といった現代的なソフトウェア開発の恩恵を組み込み分野でも最大限に享受できるようになります。
是非、この機会にVS Code × IARのエコシステムを体験し、開発効率を最大限に高めてみてください。
本記事は、2026年3月時点の仕様および公開機能に基づいて作成されています。今後のアップデートにより、UIや機能が随時変更される可能性がありますので、最新のGitHubリポジトリやドキュメントも併せてご確認ください。
本記事は、過去に行ったウェビナーの内容をもとに作成されています。ウェビナーの資料はこちらよりダウンロードいただけます: https://www.iar.com/ja/knowledge/webinars-and-events/download_20260408
