C言語

無料で始める組込みC開発環境:PlatformIO・GNU Armツールチェーン・VSCodeガイド

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

お得なお知らせ

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

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

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

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

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


スポンサードリンク

必要ツールの概要と選定ポイント

ツール 2024‑04 時点の最新版* 主な特徴 推奨利用シーン
VS Code 1.88 (2024‑03 リリース) 軽量・拡張性が高く、WSL2 とシームレスに統合できる。デバッグ UI が充実。 全般的な開発環境のフロントエンド
PlatformIO(VS Code 拡張) 6.2.1 (2024‑12 リリース) platformio.ini にビルド・アップロード設定を一元化。依存パッケージ自動取得。複数ボードの切替が容易。 プロトタイピング、マイコンごとのテンプレート管理
GNU Arm Embedded Toolchain(gcc‑arm‑none‑eabi) 13.2.0 (2023‑12 リリース) GCC 13 系に基づく最新の C/C++ コンパイラ。C17 完全対応、LTO 標準有効化。 低レベルビルド・カスタムリンカ設定が必要な場合
Make GNU Make 4.3 (2020‑04 リリース) ビルド手順をスクリプト化しやすく、CI/CD にそのまま組み込める。 大規模プロジェクト、既存レガシーコード、CI パイプライン

*最新版は公式リポジトリ/ダウンロードページで確認できます。

参考リンク
- VS Code: https://code.visualstudio.com/
- PlatformIO Docs: https://docs.platformio.org/
- Arm GNU Toolchain Release Notes: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm

PlatformIO と Make の位置付け

目的 PlatformIO が適しているケース Make が適しているケース
設定管理 platformio.ini にボード・フレームワーク情報を宣言的に記述。複数環境の切替が GUI で直感的。 手書き Makefile のため、細かいビルドフラグやカスタムスクリプトを自由に組み込める。
CI/CD ビルド結果は pio run コマンドだけで取得でき、GitHub Actions のステップとして簡潔に記述可能。 既存の Make ベース CI がある場合はそのまま流用でき、依存関係が明示的。
デバッグ PlatformIO が自動生成した launch.json と GDB 設定でワンクリックデバッグが実現。 OpenOCD + GDB の手動起動が必要だが、細かいブレークポイント設定やスクリプトのカスタマイズが容易。

結論
- 初心者・プロトタイプ → PlatformIO が最速。
- 大規模・既存コードベース・CI → Make を併用または単独で採用。


WSL2 + Ubuntu のインストール手順

  1. WSL2 有効化(管理者 PowerShell)

powershell
wsl --install
# Windows が再起動したら自動的に Linux カーネルがダウンロードされます。

  1. Ubuntu 22.04 LTS のインストール
  2. Microsoft Store を開き「Ubuntu 22.04 LTS」を検索して「取得」→「インストール」
  3. 初回起動時にユーザー名とパスワードを設定

  4. WSL2 がデフォルトになることを確認

bash
wsl -l -v # Ubuntu が "Running" かつ "Version 2"

ポイント
WSL2 は Linux カーネルがフルに動作するため、/usr/bin 配下のツールはそのまま使えます。PATH を手動で追加する必要はありません。


GNU Arm Embedded Toolchain と Make の導入方法

1. 必要パッケージのインストール

バージョン確認(インストール直後に実行)

2. PATH の取り扱い

Ubuntu の標準シェル (bash / zsh) では /usr/bin がデフォルトで PATH に含まれます。
追加設定は不要です。ただし、カスタムインストール先にツールを置く場合だけ環境変数を編集してください。


VS Code と PlatformIO のセットアップ

手順 操作内容
1 VS Code を公式サイトからダウンロード・インストール(Windows → User インストール推奨)
2 「拡張機能」ビュー (Ctrl+Shift+X) で PlatformIO IDEC/C++ (Microsoft)GitLens を検索して「インストール」
3 VS Code の左下に PlatformIO アイコンが表示されたらクリックし、PlatformIO Home が開くことを確認

推奨設定(settings.json)


PlatformIO で STM32 プロジェクトを作成する流れ

  1. PlatformIO Home → New Project
  2. Project Name: stm32f4_blink
  3. Board: ST STM32F401RE(または使用マイコンに合わせて選択)
  4. Framework: ArduinoSTM32Cube(どちらも C/C++ が書けます)
  5. 「Finish」すると以下が自動生成されます

platformio.ini の例(STM32F401RE)

  • ビルドPlatformIO: Build(Ctrl+Alt+B)
  • アップロードPlatformIO: Upload(Ctrl+Alt+U)
  • デバッグ開始PlatformIO: Debug(F5)

Tip
platformio.inibuild_flags-Wno-error=deprecated-declarations を追加すると、古い API が警告になるケースを抑制できます。


Makefile を用いたカスタムビルド例と CI への展開

1. シンプルな Makefile(コメント付き)

2. GitHub Actions 用サンプルワークフロー

ポイント
- Makefile は make clean && make でフルリビルドが可能。
- CI に組み込む際はデバイス書き込み・デバッグステップを除外し、ビルドだけに絞る。


よくあるトラブルと対処法(チェックリスト)

症状 原因例 確認手順 解決策
gcc-arm-none-eabi: command not found PATH が破損、もしくはツールが未インストール which gcc-arm-none-eabi → 何も返らない sudo apt install gcc-arm-none-eabi。WSL2 のデフォルト PATH に問題はありません。
PlatformIO が Python 環境を認識しない 複数の Python が混在(system/python3 と pyenv) platformio --version でエラーが出るか確認 VS Code 設定に "platformio.pythonPath": "~/.platformio/penv/bin/python" を追記
OpenOCD が USB デバイスを検出しない 権限不足、WSL2 のデバイス共有未設定 dmesg | grep -i usb で認識確認 Windows 側「デバイスの共有」有効 → WSL2 で udev ルール追加(下記)
デバッグ中に target remote :3333 が接続できない OpenOCD が起動していない、ポート番号ミス ps aux | grep openocd でプロセス確認 openocd -f interface/stlink.cfg -f target/stm32f4x.cfg を手動実行しログをチェック

udev ルール例(WSL2)

備考:WSL2 の場合、USB デバイスは Windows 側で「共有」設定を有効にしないと認識されません。PowerShell で wsl --list --verbose を確認し、対象ディストリビューションが Running と表示されていることもチェックしてください。


バージョンアップ時の注意点と今後のロードマップ

1. PlatformIO → CMake 移行のヒント

移行項目 PlatformIO 設定例 CMake への変換例
ビルドフラグ (build_flags) build_flags = -DDEBUG -Os add_compile_definitions(DEBUG)
add_compile_options(-Os)
リンカスクリプト (upload_protocol) upload_protocol = stlink CMake では -T stm32f4x.cfg を OpenOCD 起動時に指定

実務的アドバイス:大規模プロジェクトで CMake に完全移行する場合は、まず PlatformIO の platformio.ini を JSON 化し(pio project export --format=json)、生成された情報を基に CMakePresets.json を作成すると手間が省けます。

2. ツールチェーンのバージョン差分

  • GCC 13 系では -fno-common がデフォルト化され、同名シンボルの重複がエラーになるケースがあります。レガシーコードでこの問題が出たら -fcommon を明示的に付与してください。
  • PlatformIO 6.2.xは Python 3.12 が必須です。古い環境(Python 3.8/3.9)では自動インストールに失敗することがあります。WSL2 の python3 を最新版 (sudo apt install python3.12) に更新しておくと安全です。

3. 今後期待できる代替ツール

ツール 想定リリース時期 主な利点
Zephyr SDK (v0.16) 2026 Q3 RTOS とビルドシステムが統合。PlatformIO の代替として、CMake + West が標準化されつつある。
CMake‑Presets (VS Code 標準サポート) 2024‑2025 CMakePresets.json にビルド構成を JSON で記述でき、IDE と CI の設定が一元管理可能になる。

結論:現時点では PlatformIO が最もハンドホールドされた体験を提供しますが、長期的には CMake‑Presets + Zephyr SDK への段階的移行を視野に入れると、メンテナンスコストが低減します。


おわりに

  • 本ガイドは 公式リリース情報 に基づく最新の無料ツールチェーン構成例です。
  • 「WSL2 + Ubuntu」上であれば /usr/bin が自動的に PATH へ組み込まれるため、余計な環境変数設定は不要です。
  • PlatformIO と Make は 目的別に使い分け することで、開発スピードと柔軟性の両立が可能です。

実務で最も重要なのは「ビルドが成功すれば次はデバッグ、最後に本番書き込み」 というフローを確実に回すことです。本稿の手順通りに環境を構築し、まずは “Hello, World” レベルの Blink プロジェクトで動作確認を行ってください。


※ 本記事は執筆時点(2024‑04)で確認できた情報に基づきます。ツールのバージョンが更新された場合は、各公式サイトをご参照ください。

スポンサードリンク

お得なお知らせ

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

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

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

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

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


-C言語