EIM(ESP-IDF Installation Manager)の使い方|複数バージョン共存で変わる ESP32 開発環境
ESP32 の開発環境を壊さず隣に足す。ESP-IDF 6.0 と同時に登場した公式インストールマネージャ EIM の使い方を、eim list / select / run による複数バージョン共存、導入手順、実運用パターン、既知の罠まで Windows 実測でまとめた。
ESP32 の開発環境を壊さず隣に足す。ESP-IDF 6.0 と同時に登場した公式インストールマネージャ EIM の使い方を、eim list / select / run による複数バージョン共存、導入手順、実運用パターン、既知の罠まで Windows 実測でまとめた。
ESP-IDF 6.0 では cJSON が本体同梱でなくなり、idf_component.yml に1行書いてレジストリから取得する。managed_components に依存が落ちてくる実ログと、ESP32-S3 実機での Wi-Fi 接続から HTTP POST 成功までの記録。
ESP-IDF 6.0 は ADC・I2S・RMT などレガシードライバを全廃した。v5.x から何が壊れどこを直すのかを置き換え表で整理し、Picolibc・Mbed TLS 4.x/PSA Crypto、ツールチェーン要件、ESP32-S3 実機でのビルドまで通した。
コンパイラは「意味を変えずに速くする」が、volatileを忘れると意味ごと変える。-O0と-O2でSTM32のアセンブラがどう変わるかをobjdumpで実際に見て、12回分の学びを「つよつよの条件」として締めくくる最終回。
メモリ消費を見える化する第11回。.text/.data/.bss の正体、リンカスクリプトの読み方、arm-none-eabi-size と map ファイルの見方、スタックオーバーフローの防ぎ方に加え、51万行のソース流出事件に学ぶ map ファイルの扱いまで。
「CPUが1バイトずつ送る」をやめ、「DMAが全部やる」に変える。UART送信をDMA化することでCPUを解放し、スループット・レイテンシ・バス競合の直感を身につける第10回。
割り込みを壊して学ぶ第9回。ISR 内 printf のデッドロック、volatile 忘れによる最適化バグ、重い処理でのタイミング破綻、非アトミックな複数変数更新、フラグクリア忘れ、長すぎる割り込み禁止の6つを実際に踏む。
割り込みの仕組みを組み立てる第8回。1ms 周期をポーリングで作ると何が破綻するのかを起点に、ベクタテーブル、NVIC の優先度と許可、CPU が自動で行うコンテキスト保存を追い、TIM2 割り込みで周期イベントを実装する。
1サイクルの重さを知る第7回。DWT CYCCNT で µs 単位の実行時間を測り、SysTick との違い、GPIO トグルとオシロスコープでの計測、CYCCNT 自体の注意点まで押さえる。計測なき最適化は迷信だ、という計測文化の入り口。
ポインタの地雷をわざと踏む第6回。NULL デリファレンスによる HardFault、ダングリングポインタ、ローカル変数のアドレスを返すスタック寿命、配列外アクセス、未定義動作、最適化での挙動変化——6つの事故をデバッガで観察する。
ポインタを「型付きアドレス」として捉え直す第5回。宣言・参照・間接参照、型で歩幅が変わるポインタ演算、キャストの意味を押さえ、メモリマップ I/O で GPIO を直接叩き、CMSIS の GPIO_TypeDef が何を隠しているかを読み解く。
STM32 連載の第0回。組み込みが難しく見えるのは、メモリという「場所」と実行の「時間」を自分で意識するからだ。OS に守られた PC 環境と、ハードウェアを直接叩く世界の違いを整理し、ポインタ・割り込み・DMA を貫く2つの軸を示す。
Arduino卒業後の次のステップ!STM32マイコンで学ぶ本格的な組み込みプログラミング。アドレス・ビット・時間――組み込みの本質を、段階的に、確実に理解する。