5組込みソフトウェア開発
- 5.1クロス開発環境
PCなどのホスト上でターゲット(組込みボード)向けの実行コードを生成するクロスコンパイラ・リンカ・ロケータの役割、ターゲット実機を直接デバッグするICE・JTAG・SWD・エミュレータの使い分け、そして実機デバッグの現場での判断力を学びます。
- 5.2デバイスドライバとファームウェア
ハードウェアのレジスタ操作と割込み処理を抽象化するデバイスドライバの役割、電源投入直後にシステムを立ち上げるブートローダ、そして現場で機器を更新するOTA(Over-The-Air)更新におけるフェイルセーフ・ロールバック設計を学びます。
- 5.3状態遷移設計とイベント駆動
組込み機器のふるまいを整理する状態遷移図/表、外部からの入力に応じて処理するイベント駆動方式と一定周期で状態を確認するポーリング方式の使い分け、そして未定義の遷移を残さない網羅性・例外遷移の設計を学びます。
- 5.4割込みハンドラとリソース管理
ISR(割込みサービスルーチン)を短く保ち後続処理へ委譲する設計原則、リエントラントな関数設計とクリティカルセクションによる排他制御、そして限られたスタック/ヒープを守るメモリ枯渇・メモリリークへの対処を学びます。

