LabHub

ブログ

組込みシステム & ファームウェア開発 2026 完全ガイド — STM32 · ESP32-C6 · RP2040 · Raspberry Pi 5 · Arduino · PlatformIO · Zephyr RTOS · ESP-IDF 徹底解説

한국어English日本語

1章 · 組込み2026 — MCUとSBC、そしてFPGAの境界

組込み開発者がまず内在化すべきは チップクラスの軸 である。2026年の軸は三つに分かれる。

分類代表チップ特徴OS
MCUSTM32, ESP32, RP2040メモリKB-MB、マイクロアンペア・スリープベアメタル / RTOS
SBCRaspberry Pi 5, Jetson OrinメモリGB、GPU/NPULinux
FPGALattice ECP5, Xilinx Artix-7ゲート単位の並列、HDL合成なし / ソフトコア

MCUは 決定論的リアルタイム制御、SBCは 本格的なOSとAI、FPGAは ハードウェア・パイプライン が必要な場合に使う。三者は互いに置き換えられない。同一装置の中で同居することも珍しくない。産業用マシンビジョン・カメラはFPGAがセンサを読み、MCUがモータを回し、SBCが推論を走らせるのが定番構成だ。

本稿は主にMCUとSBCを扱うが、どこでFPGAが必要になるかの感覚も併せて押さえる。


2章 · STM32 — Cortex-Mの事実上の標準

STMicroelectronicsのSTM32は2007年の登場以来、Cortex-MベースMCUの 事実上の標準 になっている。2026年現在のラインナップは広い。

シリーズコア特徴代表型番
STM32F0Cortex-M0入門・低価格STM32F030
STM32G0Cortex-M0+新入門STM32G031
STM32F4Cortex-M4 + FPU汎用高性能STM32F407
STM32F7Cortex-M7DSP・画像STM32F746
STM32H7Cortex-M7 480MHz高性能STM32H743
STM32L4/L5Cortex-M4/M33超低消費電力STM32L476
STM32U5Cortex-M33 + TrustZoneセキュリティ + 低消費STM32U585
STM32WB/WLM4 + M0+BLE / LoRaSTM32WB55
STM32H5Cortex-M33新メインストリームSTM32H573
STM32MP1/MP2Cortex-A7/A35 + M4/M33ヘテロ(Linux + RTOS)STM32MP157

開発フロー

典型的なSTM32ワークフローは次のとおり。

  1. STM32CubeMX でピン・クロック・周辺(USART/SPI/I2C/ADCなど)を設定し、HALコードを生成する
  2. STM32CubeIDE(または VS Code + Cortex-Debug)でコードを書く
  3. ST-Link V3 でフラッシュとデバッグ
  4. STM32CubeMonitor で変数をリアルタイム可視化

ST-LinkはNucleo基板に内蔵されているため別途購入は不要。Nucleo-F411REなら15ドル程度で買える。

HAL vs LL vs ベアメタル

STは二系統のライブラリを提供する。HAL(Hardware Abstraction Layer)は抽象化が厚く、LL(Low Layer)はレジスタアクセスに近い。リアルタイム性が重要なコードではLLを使うか、いっそレジスタを直接叩く。CubeMXはどちらの生成にも対応する。


3章 · ESP32 — WiFi/BTが既定のMCU

EspressifのESP32は2016年の登場以来、IoTの事実上の標準になった。2026年のラインナップ。

チップISAWiFiBT/BLEコア
ESP32(Classic)Xtensa LX644.2 / BLE 4.2デュアル 240MHz
ESP32-S2Xtensa LX74なしシングル
ESP32-S3Xtensa LX74BLE 5.0デュアル + AI加速
ESP32-C3RISC-V4BLE 5.0シングル 160MHz
ESP32-C6RISC-V6BLE 5.3 + Thread/Zigbeeシングル 160MHz
ESP32-H2RISC-VなしBLE 5.3 + 802.15.4シングル
ESP32-P4RISC-Vなし(外付け補助)なしデュアル 400MHz + MIPI

ESP32-C6(2023)はWiFi 6・Thread・Zigbee・Matterを1チップに統合した最初のライン。ESP32-P4(2024量産)はWiFiを持たない代わりにデュアルRISC-V 400MHzとMIPI-CSI/DSIを備え、カメラ・ディスプレイ用途に使われる。

ESP-IDF v5.4

Espressif公式SDKのESP-IDFは、v5.4(2024)でRust統合、ESP32-P4の正式対応、OpenThread 1.3などを追加した。コマンドラインは単純である。

idf.py set-target esp32c6
idf.py menuconfig
idf.py build flash monitor

idf.py menuconfig はkconfigツリー上でWiFiスタック、パーティションテーブル、コンパイラ・オプションを切り替える。

Arduino-ESP32 vs ESP-IDF

ESP32はArduinoコアでも動く。void setup(void)void loop(void) の枠組みのままWiFi/BLEを呼ぶコードなら5分で点滅する。一方でOTA、デュアルコア活用、低消費電力スリープのような高度な機能は、ESP-IDFのFreeRTOS APIを直接叩くほうが自然である。


4章 · RP2040とRP2350 — Raspberry PiのMCU

2021年に登場したRaspberry Pi PicoのRP2040は、入門用MCUの基準を引き直した。デュアル Cortex-M0+ 133MHz、264KB SRAM、そして PIO(Programmable I/O)という独特の周辺がある。PIOは小さなステートマシン8個を持ち、VGA・DPI・WS2812 LEDなどの厳しいプロトコルをビット単位でハードウェア合成する。

RP2350(2024年8月発表)

RP2040の後継、RP2350(Raspberry Pi Pico 2)は2024年8月に発表された。

項目RP2040RP2350
コアデュアル Cortex-M0+デュアル Cortex-M33 + デュアル Hazard3 RISC-V
クロック133MHz150MHz
SRAM264KB520KB
セキュリティなしTrustZone、OTP、ブートROM認証
Pico基板価格4ドル5ドル

RP2350の本当の珍しさは デュアルISA だ。同じコア・ソケットにCortex-M33とRISC-V Hazard3のいずれかをブート時に選べる。SDKビルド時点で決定する。

Pico SDK

pico-sdk はCMakeベースで意外と素直である。

cmake_minimum_required(VERSION 3.13)
include(pico_sdk_import.cmake)
project(blink)
pico_sdk_init()
add_executable(blink blink.c)
target_link_libraries(blink pico_stdlib)
pico_add_extra_outputs(blink)

uf2 ファイルを生成し、PicoのBOOTSELボタンを押しながらUSB接続すると、マウントされたドライブにファイルをドラッグするだけでフラッシュ完了。別途プログラマは不要だ。


5章 · Arduino Uno R4 — 16年ぶりの世代交代

Arduino Unoは2010年以来ATmega328P(8ビットAVR)を使ってきたが、2023年発表の Uno R4 で16年ぶりにシリコンが変わった。Renesas RA4M1(Cortex-M4 48MHz、256KB Flash、32KB SRAM)へ移行している。

二種類の派生がある。

既存のUno R3とピン互換でシールドはそのまま流用できる。CAN、DAC、OpAmp、USB HIDが新規追加。元のATmega328P比でメモリが1000倍近くに増えた。

8ビット時代の一部ライブラリは互換性問題があり、R4登場直後はトラブルが目立った。2024-2025年を通じて主要ライブラリの大半がR4対応になった。


6章 · Nordic nRF52 / nRF54 — BLEの王者

BLE(Bluetooth Low Energy)専用シリコンではNordic Semiconductorが圧倒的に強い。2026年ラインの中心。

Nordicは nRF Connect SDK(NCS)を提供しており、内部で Zephyr RTOS を採用する。nRF52を触り始めると自然にZephyrへ入っていく。従来のSoftDevice(BLEスタックのバイナリ・ブロブ)はZephyrネイティブのBluetoothホスト/コントローラに置き換えられつつある。


7章 · その他のMCUファミリ — Microchip、NXP、TI、WCH

上位4家以外にも組込み世界は広い。

チップ選定は 供給安定性、価格、ツール成熟度 の関数になることが多い。2021-2022年のチップ不足以降、一家のみに賭けないマルチベンダ設計が一般化した。


8章 · Raspberry Pi 5とSBC生態系

Raspberry Pi 5(2023年10月発表、2024年に本格普及)はSBCの基準を引き直した。

項目Pi 4Pi 5
SoCBCM2711(A72)BCM2712(A76)
クロック1.5 / 1.8GHz2.4GHz
メモリ1/2/4/8GB LPDDR44/8/16GB LPDDR4X
PCIeなしPCIe 2.0 x1(外付け NVMe)
電源USB-C 15WUSB-C 25W(5A推奨)
価格35-75ドル60-120ドル

Pi 5は RP1 という自前のI/Oチップを外部に置きPCIe接続するため、USB/EthernetスループットがPi 4比で大きく伸びた。NVMe SSDをHATで増設する構成が標準化した。

その他のSBC

選定の優先順位は概ね コミュニティ規模 → ドライバ成熟度 → 価格 → 仕様 の順。Piの強みは前二項目にある。


9章 · RTOS — FreeRTOS, Zephyr, ThreadX, NuttX

ベアメタルは単純な用途には向くが、タスクが二つ以上に増えるとRTOSが要る。2026年のRTOS地形。

FreeRTOS 11

Zephyr RTOS 4.0

Eclipse ThreadX(旧Azure RTOS)

Apache NuttX

CMSIS-RTOS / RTX

Mbed OS

選定軸は 認証の要否、マルチ・アーキテクチャ対応、コミュニティ活性度 が中心だ。新規プロジェクトであれば、FreeRTOS(軽さ優先)またはZephyr(生態系優先)が一般的な選択になる。


10章 · 組込み言語の多様化 — Rust、TinyGo、MicroPython

Cが依然として組込み第一言語であることは変わらないが、2026年には本格的な代替が増えた。

Rust embedded

#[embassy_executor::main]
async fn main(spawner: Spawner) {
    let p = embassy_rp::init(Default::default());
    let mut led = Output::new(p.PIN_25, Level::Low);
    loop {
        led.toggle();
        Timer::after(Duration::from_millis(500)).await;
    }
}

PicoのGPIO 25に繋がるオンボードLEDを点滅させる。async/awaitが本当に動く。

TinyGo

MicroPython / CircuitPython

import machine, time
led = machine.Pin(25, machine.Pin.OUT)
while True:
    led.toggle()
    time.sleep(0.5)

TinyMaix、picoTLS

より厳しい性能・メモリ予算向けの特化ライブラリ群。TinyMaixはニューラルネット推論エンジンを200KB Flashに収める。


11章 · PlatformIO — マルチターゲット・ビルドの事実上の標準

PlatformIOは2014年にウクライナのIvan Kravetsが開始したマルチプラットフォーム組込みビルドシステムである。2026年現在、約1300ボード、50プラットフォーム、20フレームワークに対応する。

[env:esp32-c6]
platform = espressif32
board = esp32-c6-devkitc-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600

[env:nucleo_f411re]
platform = ststm32
board = nucleo_f411re
framework = stm32cube
debug_tool = stlink

同一フォルダ内に二つの環境を定義しておけば、pio run -e esp32-c6 でESP32向けに、pio run -e nucleo_f411re でSTM32向けにビルドが走る。ライブラリも lib_deps = adafruit/Adafruit BME280 Library@^2.2.4 のようなSemVer依存で管理する。

VS Code拡張が最も人気のフロントエンド。Arduino IDEより強力で、Eclipseベースの ST IDEより軽量だ。


12章 · ESP-IDF v5.4とESP32ワークフロー詳細

ESP-IDFはEspressifの公式SDKで、FreeRTOS、LwIP、WiFiスタックを一つにまとめている。v5.4(2024)の主な変更点は次のとおり。

ビルド・パイプライン

idf.py build は内部でCMake + Ninjaを呼び、パーティション・テーブルに従ってブートローダ、アプリ・バイナリ、NVS領域を生成する。

build/bootloader/bootloader.bin   # 2次ブートローダ(ROM の次)
build/partition_table/partition-table.bin
build/myapp.bin                   # アプリケーション
build/ota_data_initial.bin        # OTAスロット・メタ

フラッシュは esptool.py write_flash または idf.py flash で行う。

デュアルコア活用

ESP32 ClassicとS3はデュアルコアである。FreeRTOSの xTaskCreatePinnedToCore で特定コアにタスクを固定する。

xTaskCreatePinnedToCore(network_task, "net", 8192, NULL, 5, NULL, 0);
xTaskCreatePinnedToCore(sensor_task,  "sen", 4096, NULL, 5, NULL, 1);

コア0はWiFi/BTスタックが重く使い、コア1はアプリケーション論理が占有するのが一般的なパターンだ。


13章 · デバッグ — ST-Link、J-Link、OpenOCD、probe-rs

ベアメタルのデバッグは通常2段階。ボードのSWDピンにデバッグ・プローブを繋ぎ、ホストのGDBがプローブを介してチップを操る。

デバッグ・プローブ

OpenOCDとprobe-rs

ホスト側GDBサーバは伝統的に OpenOCD だ。Cコードベースが古く、設定がやや煩雑である。2020年代後半に probe-rs(Rust)が台頭。cargo flash --chip STM32F411RETx 一行で書き込みが完結する単純さが特徴。

GDB自体は今も標準。VS CodeのCortex-Debug拡張や CLion の組込みデバッガはGDBを包んでいる。


14章 · 通信 — SPI、I2C、UART、CAN、USB

MCU仕事の9割はこの5種の直列通信を直接扱う。

プロトコル速度ピン数特徴
UART通常 115200bps2(TX/RX)最も単純。非同期。
SPI数十 MHz4(MOSI/MISO/SCK/CS)高速で対称。
I2C100k/400k/1M2(SDA/SCL)マルチスレーブ。プルアップ必須。
CAN1Mbps2(CAN-H/L)差動、自動車標準。
RS-48510Mbps2(A/B)差動、産業用長距離。
USB FS/HS12/480Mbps4(D+/D-/VBUS/GND)ホスト/デバイス。

ピン識別子は GPIO_NUM_2 のようにチップ別マクロで扱う。プルアップ/プルダウン、駆動強度、オープンドレインなどのGPIO属性も併せて設定する。


15章 · 無線 — WiFi 6、BLE 5.4、Thread、Matter

2026年の組込み無線の大きな流れは Matter 1.4のメインストリーム化 である。

チップ選定では無線スタックのRAM/Flash負担が無視できない。BLEホスト + コントローラだけで100-200KB Flash、30-50KB RAMが一般的である。


16章 · センサ — BME680、VL53L5、MPU6050、GPS

代表的なセンサ部品をいくつか押さえる。

I2Cアドレス衝突はよくある罠だ。同じアドレスのチップを2個使うにはTCA9548AのようなI2Cマルチプレクサを通すか、片方のSDO/ADDRピンでアドレスをずらす。


17章 · AI on MCU — TFLM、Edge Impulse、STM32Cube.AI

小さなニューラルネットをMCUに載せる、いわゆるTinyMLは2020年代後半に本格的に産業化した。

Cortex-M55(Helium MVE)と Ethos-U55/U65 NPUコアの追加により、MCUで0.5-1.0 TOPS級の推論が可能になった。画像1フレームを100ms以内に分類するレベルに到達している。


18章 · OTA — SUIT、mender、ESP32 OTA

配置後のファームウェア更新は組込みで最も難しい運用課題の一つだ。

A/Bスロット、ロールバック、署名、整合性検証、部分更新(差分)などの要件を満たすのは難しい。SaaSに任せる比率が増えている理由はここにある。


19章 · PCB CAD — KiCad 8、Altium、EasyEDA

回路図とPCBを描くツール群。

小規模メーカーにはKiCad + JLCPCBの組合せが事実上の標準。両面100x100mm PCB 5枚で約7ドル、3日で届く。


20章 · 韓国と日本の組込み生態系

韓国

日本

両地域ともメーカー市場は活発だが、英語ドキュメントの量が圧倒的なため、韓国・日本の開発者も英語資料で学ぶ比率が高い。


21章 · メーカー・フェアとクラウドファンディング — Hackaday、Tindie、Crowd Supply

オープン・ハードウェア・プロジェクトが製品になる通路。

韓国の Wadiz/Tumblbug、日本の CAMPFIRE/Makuake にも組込みカテゴリはあるが、英語圏に比べれば規模は小さい。


22章 · シミュレーション — Wokwi、Renode、QEMU

実機なしでファームウェアを動かす道具が定着した。

CI/CDで毎コミット単位の回帰テストを回すならシミュレーションが事実上必須だ。CIサーバに基板を100枚挿しておくのは現実的ではない。


23章 · 筐体 — 3Dプリントと CAD

組込み製品の外観は通常、3Dプリントや射出成形で作る。メーカー段階では3Dプリントが主流。

PETG、ABS、ASA、PC、Nylonは外装によく使う。PLAは試作には良いが60度以上で変形するため、車内環境などには不向きである。


24章 · セキュリティ — Secure Boot、TrustZone、OTP

IoT機器のセキュリティはもはやオプションではない。EUの Cyber Resilience Act(CRA)は2024年に採択され、2027年12月の本格適用を控えている。

小型MCUに ATECC608A のような外付けセキュアICを追加するパターンが増えている。


25章 · 学習資料 — 書籍、講座、カンファレンス

韓国語資料では尹徳容氏の「AVR マイクロコントローラ」シリーズ、Jang Mun-cheol 講師のYouTubeチャンネルが有名。日本語ではCQ出版の月刊「トランジスタ技術」が創刊から70年近い歴史を持つ。


26章 · 結び — 小さなチップ、大きな世界

組込み開発はあらゆる分野の中で、最も ハードウェアとソフトウェアの境界 に近い仕事である。同じコードでも、基板二枚のプルアップ値が違えば動作が変わる。Cの一行が100マイクロ秒の割込み遅延を生んでモータを壊すこともある。この距離感が組込みの魅力であり、難しさでもある。

2026年の組込みは、道具が大きく改善した時代だ。PlatformIO と Wokwi が入門の障壁を下げ、Rust embedded と Zephyr が安全性と移植性を強化し、KiCad と JLCPCB が PCB 製作を誰でも可能にした。RP2350 のデュアルISA、ESP32-P4 の RISC-V、nRF54L15 の BLE 5.4 といった新シリコンは、5年前には想像できない価格帯で売られている。

学びの順序は単純だ。

  1. Arduino Uno R3 または Pi Pico で LED を点滅させる。
  2. UART・SPI・I2C でセンサを1個読む。
  3. PlatformIO または ESP-IDF で環境を整える。
  4. FreeRTOS のタスクを2個動かす。
  5. WiFi または BLE でクラウドかスマホと通信する。
  6. KiCad で自分の基板を1枚発注する。

6段階を踏めば組込みエンジニアになれる。一度に一段ずつでよい。小さなチップが大きな世界を動かす喜びがその先にある。


参考資料

コメント

まだコメントはありません。

ログインするとコメントできます