【STM32連載 第12回】最適化とアセンブラ ― Cが機械語になる瞬間を見る ―

コンパイラは「意味を変えずに速くする」が、volatileを忘れると意味ごと変える。-O0と-O2でSTM32のアセンブラがどう変わるかをobjdumpで実際に見て、12回分の学びを「つよつよの条件」として締めくくる最終回。

5月 8, 2026 · 8 分 · 

【STM32連載 第11回】リンカスクリプトとmapファイル ― メモリ消費を見える化する ―

メモリ消費を見える化する第11回。.text/.data/.bss の正体、リンカスクリプトの読み方、arm-none-eabi-size と map ファイルの見方、スタックオーバーフローの防ぎ方に加え、51万行のソース流出事件に学ぶ map ファイルの扱いまで。

5月 2, 2026 · 8 分 · 

【STM32連載 第10回】DMAという発想 ― CPUを暇にする転送アーキテクチャを徹底理解 ―

「CPUが1バイトずつ送る」をやめ、「DMAが全部やる」に変える。UART送信をDMA化することでCPUを解放し、スループット・レイテンシ・バス競合の直感を身につける第10回。

4月 30, 2026 · 5 分 · 

【STM32連載 第9回】割り込み設計アンチパターン集 ― 壊して学ぶISRの書き方 ―

割り込みを壊して学ぶ第9回。ISR 内 printf のデッドロック、volatile 忘れによる最適化バグ、重い処理でのタイミング破綻、非アトミックな複数変数更新、フラグクリア忘れ、長すぎる割り込み禁止の6つを実際に踏む。

4月 26, 2026 · 7 分 · 

【STM32連載 第8回】割り込みの仕組み ― ベクタ・NVIC・コンテキスト保存 ―

割り込みの仕組みを組み立てる第8回。1ms 周期をポーリングで作ると何が破綻するのかを起点に、ベクタテーブル、NVIC の優先度と許可、CPU が自動で行うコンテキスト保存を追い、TIM2 割り込みで周期イベントを実装する。

4月 17, 2026 · 9 分 · 

【STM32連載 第7回】時間の世界(計測文化の入り口) ― 1サイクルの重さを知る ―

1サイクルの重さを知る第7回。DWT CYCCNT で µs 単位の実行時間を測り、SysTick との違い、GPIO トグルとオシロスコープでの計測、CYCCNT 自体の注意点まで押さえる。計測なき最適化は迷信だ、という計測文化の入り口。

4月 8, 2026 · 8 分 · 

【STM32連載 第6回】ポインタ事故大全 ― なぜ壊れる?壊れ方を知って強くなる ―

ポインタの地雷をわざと踏む第6回。NULL デリファレンスによる HardFault、ダングリングポインタ、ローカル変数のアドレスを返すスタック寿命、配列外アクセス、未定義動作、最適化での挙動変化——6つの事故をデバッガで観察する。

3月 28, 2026 · 12 分 · 

【STM32連載 第5回】ポインタ=住所(型付きアドレス) ― ポインタを武器にする ―

ポインタを「型付きアドレス」として捉え直す第5回。宣言・参照・間接参照、型で歩幅が変わるポインタ演算、キャストの意味を押さえ、メモリマップ I/O で GPIO を直接叩き、CMSIS の GPIO_TypeDef が何を隠しているかを読み解く。

3月 25, 2026 · 更新: 3月 29, 2026 · 13 分 · 

【STM32連載 第4回】ビットの世界 ― レジスタ操作の作法とBSRRの思想 ―

レジスタをビット集合として扱う第4回。マスクとシフトの基本、読んで変えて書く RMW の競合、アトミック操作のために用意された BSRR の思想を押さえ、GPIO 直叩きの Lチカを3通りで書いて HAL と速度を比べる。

3月 14, 2026 · 11 分 · 

【STM32連載 第3回】構造体パディングとアライメント ― メモリレイアウトを実測する ―

Memory ビューで生バイト列を見る第3回。配列が SRAM 上で連続して並ぶ様子、構造体メンバの隙間に生じるパディングとアライメント制約、sizeof() の落とし穴、RAM を節約するメンバ並び替えまでを実バイトで確かめる。

3月 6, 2026 · 更新: 3月 12, 2026 · 8 分 · 

【STM32連載 第2回】変数が住む場所を見つける ― Flash、RAM、Stackの使い分け ―

変数の住所を追う第2回。const・グローバル・ローカルという宣言の違いだけで、データが Flash・SRAM・Stack のどこに置かれるかが変わる。STM32 のメモリマップを地図として読み、実際の配置先アドレスをデバッガで確認する。

3月 1, 2026 · 6 分 · 

【STM32連載 第1回】マイコンは"アドレスの世界" ― 座標で読み解くハードウェア ―

デバッガでマイコンの中を覗く第1回。プログラムカウンタで現在地を特定し、メモリマップでアドレス空間の構造を読み、レジスタ書き換えでハードウェアを有効化する。STM32 のすべてがアドレスで動いていることを実際の数値で確かめる。

2月 23, 2026 · 4 分 · 

【STM32連載 第0回】なぜ組み込みは難しく見えるのか ― 場所と時間の話 ―

STM32 連載の第0回。組み込みが難しく見えるのは、メモリという「場所」と実行の「時間」を自分で意識するからだ。OS に守られた PC 環境と、ハードウェアを直接叩く世界の違いを整理し、ポインタ・割り込み・DMA を貫く2つの軸を示す。

2月 17, 2026 · 2 分 · 

【全13回連載】ポインタの先にある組み込みの世界 ― STM32で学ぶメモリと時間 ―

Arduino卒業後の次のステップ!STM32マイコンで学ぶ本格的な組み込みプログラミング。アドレス・ビット・時間――組み込みの本質を、段階的に、確実に理解する。

2月 12, 2026 · 更新: 7月 20, 2026 · 4 分 ·