C言語

組込みC開発環境構築ガイド:arm-none-eabi-gcc13.2 と VS Code設定 (2026)

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


スポンサードリンク

1. 必要なツールチェーンを入手する

ツール 推奨バージョン(2026 年 4 月時点) 入手方法
arm‑none‑eabi‑gcc 13.2 系(arm-none-eabi-gcc --version13.2.x を示す) OS 毎の公式パッケージマネージャ
LLVM/Clang 17 系(clang --version17.x を示す) 同上
OpenOCD / pyOCD / J‑Link 最新安定版 各公式サイト

※バージョンは執筆時点の「最新」情報です。実際に取得したパッケージが異なる場合は、--version で確認し、ドキュメントやビルドスクリプトに合わせて適宜書き換えてください。

1‑1. Windows(MSYS2)

インストール先は C:\msys64\ucrt64\bin です。

1‑2. Linux(ディストリビューション別)

ディストロ コマンド例
Ubuntu / Debian sudo apt update && sudo apt install gcc-arm-none-eabi clang
Fedora / CentOS sudo dnf install arm-none-eabi-gcc clang
Arch Linux sudo pacman -S arm-none-eabi-gcc clang

外部リンクについて
従来は「app‑tatsujin.com」などサードパーティサイトへの参照を行っていましたが、ブランド方針に沿う形で公式ドキュメント(ARM 社、LLVM プロジェクト、各 OS のパッケージマネージャ)へリンク先を統一しました。

1‑3. macOS(Homebrew)

  • Intel (x86_64) macOS の場合、Homebrew はデフォルトで /usr/local/opt にインストールします。
  • Apple Silicon (ARM) macOS では Homebrew が /opt/homebrew を使用します。

インストール先の実際のバイナリパスは次のコマンドで取得できます。


2. PATH 環境変数にツールチェーンを追加する

2‑1. Windows(システム環境変数)

  1. スタートメニュー → 「環境変数」検索 → 「環境変数の編集」を開く
  2. 「システム環境変数」欄の Path を選択し「編集」→「新規」で以下を追加

  1. PowerShell で確認

2‑2. Linux / macOS(シェルプロファイル)

(a) インストール先が分からない場合の取得例

(b) ~/.bashrc(Bash)または ~/.zshrc(Zsh)に追記

設定を反映させるには端末を再起動するか、次のコマンドを実行します。

(c) 動作確認


3. VS Code と拡張機能で統一開発環境を作る

拡張機能 主な役割
C/C++ (ms-vscode.cpptools) IntelliSense、コード補完、ビルド設定
Cortex‑Debug (marus25.cortex-debug) ARM デバッガ(OpenOCD・J‑Link・pyOCD)と統合
Remote‑SSH (ms-vscode-remote.remote-ssh) リモート Linux / Raspberry Pi へのシームレス接続

VS Code のバージョンは「1.90 以降」と表記していますが、実際には最新の安定版(2026 年 4 月現在は 1.91 系)をご使用ください。

3‑1. 基本設定例

c_cpp_properties.json

launch.json(OpenOCD 使用例)

tasks.json(Makefile 呼び出し)

Remote‑SSH の設定は、公式ドキュメント(https://code.visualstudio.com/docs/remote/ssh)を参照し、~/.ssh/config にホスト情報を書き込むだけで完了します。


4. リモート開発とデバッグツールの選定

ツール メリット デメリット
OpenOCD 無料・オープンソース、幅広い MCU に対応 設定がやや煩雑、速度は J‑Link に劣る
SEGGER J‑Link 高速転送(最大 12 Mbps)と安定性 有償ライセンスが必要
pyOCD Python 製でインストールが簡単、完全無料 対応 MCU が限定的、速度は低め

4‑1. Ubuntu / Raspberry Pi にリモート接続してデバッグ

udev ルール(OpenOCD 用)例(Ubuntu)

適用は次のコマンドで行います。


5. サンプルプロジェクトでビルド・書き込みを自動化

5‑1. ディレクトリ構成

5‑2. main.c(最小 LED 点滅例)

5‑3. Makefile(クロスコンパイル+OpenOCD 書き込み)

ポイントopenocd/interface.cfgopenocd/target.cfg はリモートマシン側に配置し、Makefile から相対パスで呼び出す形にしています。これによりローカルとリモートの両方で同一 Makefile が使えます。

5‑4. よくあるエラーとチェックリスト

エラーメッセージ 原因例 確認項目 / 対策
arm-none-eabi-gcc: command not found PATH 未設定またはインストール失敗 which arm-none-eabi-gcc(Linux/macOS)/where.exe arm-none-eabi-gcc(Windows)でパスを確認
openocd: cannot find USB device udev ルール未適用、ケーブル不良 /etc/udev/rules.d/99-openocd.rules を作成し、sudo udevadm control --reload-rules && sudo systemctl restart udev
undefined reference to __libc_init_array スタートアップコードがリンクされていない startup_stm32f4xx.ssystem_stm32f4xx.c をプロジェクトに追加し、LDFLAGS += -lc -lgcc
デバッグが途中で止まらない launch.jsonrunToMain が false、またはリセット未実行 "runToMain": true とし、"preLaunchTask": "Flash Device" を設定

6. まとめ(チェックリスト)

項目 実施内容
ツールチェーン取得 Windows: MSYS2 → arm-none-eabi-gcc、Linux: 各パッケージマネージャ、macOS: Homebrew。バージョンは 13.2 系(GCC)/17 系(Clang)。
PATH 設定 OS 毎に環境変数へ実際のインストールディレクトリを追加。--version コマンドで確認。
VS Code 環境構築 C/C++、Cortex‑Debug、Remote‑SSH の三拡張を導入し、.vscode/* にビルド・デバッグ設定を書き込む。
リモート開発 Ubuntu / Raspberry Pi へ SSH 接続後、OpenOCD(または J‑Link/pyOCD)をインストール。udev ルールと権限を整備。
サンプルプロジェクト Makefile または CMake にビルド・フラッシュ処理を統合し、VS Code のタスクでワンクリック実行。エラーは PATH・udev・リンカ設定の三点に絞ってチェックできるようにする。

これらの手順をすべて完了すれば、Windows・Linux・macOS のいずれの環境でも同一の組込み C 開発基盤が構築できます。コード変更 → ビルド → デバイス書き込みまでを自動化することで、開発サイクルが大幅に短縮され、チーム全体での設定差異も最小限に抑えられます。


本稿は 2026 年 4 月時点の情報を元に作成しています。将来的なパッケージ更新や OS の変更があった場合は、公式リポジトリや各ベンダーの最新ドキュメントをご確認ください。

スポンサードリンク

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


-C言語