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

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

5月 8, 2026 · 8 分 · 

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

「RAMが足りない!」「変数が勝手に書き換わる…」その原因、mapファイルに書いてあります。.text/.data/.bssの正体・リンカスクリプトの読み方・スタックオーバーフローの防ぎ方、そして51万行のソースコード流出事件から学ぶmapファイルの取り扱い注意点まで徹底解説。

5月 2, 2026 · 8 分 · 

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

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

4月 30, 2026 · 5 分 · 

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

ISRでprintf・volatile忘れ・重い処理・フラグクリア忘れ——組み込みでよく踏む地雷を「わざと」やって壊します。STM32だけでなくArduino・ESP32・Renesas・PICにも共通する割り込み設計の鉄則を、壊れる瞬間から学ぶ。

4月 26, 2026 · 7 分 · 

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

「1msごとに何かをする」ためにポーリングでは何が問題か? ベクタテーブル・NVIC・コンテキスト保存の仕組みを理解し、TIM割り込みで周期イベントを生成します。

4月 17, 2026 · 9 分 · 

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

「1秒待つ」ってCPUは何サイクル使っているのか? DWT CYCCNTでµs単位の実行時間を測る方法を学び、「計測しないと議論できない」組み込みエンジニアの鉄則を身につけます。

4月 8, 2026 · 8 分 · 

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

NULLデリファレンス・ダングリングポインタ・配列外アクセス・未定義動作……組み込みでよく踏むポインタの地雷を「わざと」踏んでデバッガで観察します。壊れ方を知ることが最強の学習法です。

3月 28, 2026 · 12 分 · 

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

C言語最大の難関「ポインタ」を「型付きアドレス」という本質から解き明かします。キャストの意味、メモリマップI/Oとの繋がり、CMSISヘッダが何をしているかまで。ポインタを怖がるのをやめ、武器にする回です。

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

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

マスク・シフト操作の基本から、RMW問題、そしてSTM32の美しい設計「BSRR」まで。レジスタはビット集合であるという本質を腹落ちさせ、GPIOをレジスタ直叩きでLチカする実践を通じてビット操作の作法を身につけます。

3月 14, 2026 · 11 分 · 

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

C言語の構造体パディング・アライメントをSTM32デバッガ(Memoryビュー)で実際に観察!sizeof()の落とし穴、RAM節約のためのメンバ並び替えテクニック、volatile修飾子の役割まで、組み込みC言語の本質を実測値で体感的に理解できます。

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

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

C言語の変数宣言(const、グローバル、ローカル)によって、データが配置されるメモリ領域が変わります。デバッガで実際のアドレスを確認し、Flash、SRAM、Stackの違いと役割を理解しましょう。

3月 1, 2026 · 6 分 · 

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

デバッガを使ってマイコン内部の状態を確認し、C言語の裏側にある「アドレス(住所)」という物理的な座標を理解します。プログラムカウンタ、メモリマップ、レジスタ書き換えの実践を通じて、組み込みの本質を体感しましょう。

2月 23, 2026 · 4 分 · 

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

組み込みが難しく見えるのは、メモリという『場所』と、実行の『時間』を意識する必要があるから。OSに守られていない世界で、ハードウェアを直接操作するってどういうこと?その本質を理解しましょう。

2月 17, 2026 · 2 分 · 

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

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

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