STM32 NUCLEO-F401REで割り込みアンチパターンを体験。ISR内printf(UART)によるデッドロック、volatile不足によるコンパイラ最適化バグ、重い処理によるタイミング破綻、クリティカルセクション不足による共有変数破壊を実証。Arduino・ESP32・Renesas・AVRにも共通する割り込み設計の鉄則と正しいISR設計パターンを解説するSTM32プログラミング連載第9回。 前回の第8回で、TIM2割り込みを実装し「ISR設計の3原則」を学びました。 短く ── 次の割り込みまでに確実に終わらせる 副作用を最小に ── フラグ通知に徹する 共有変数を保護する ── volatileとクリティカルセクション では、この原則を破ったら実際にどうなるかを見ていきましょう。 理論で「NG」と言われても腑に落ちないことがあります。でも壊れる瞬間を目撃すれば、二度と忘れませ

