Phase 5: Renode / AVR 組み込み編

このフェーズはレジスタ制御・MMIO・割り込みを中心に、組み込み設計を学ぶ段階です。Renodeで再現性の高い検証を行います。

学習対象

領域内容確認ポイント
MMIOメモリマップドI/Oの読み書きアドレス範囲、ビット操作、副作用
割り込みIRQハンドラ、マスク、優先度遅延、再入、クリア処理
UART/GPIO入出力制御、シリアルログ初期化順序、ボーレート、状態遷移
タイマ周期処理、ウォッチドッグジッタ、オーバーフロー、復帰

最小ワークフロー(Renode)

1. ファームウェアをビルド

avr-gcc -mmcu=atmega328p -Os -o app.elf app.c
avr-objcopy -O ihex app.elf app.hex

2. Renodeで実行

renode
(monitor) include @scripts/single-node.resc
(monitor) start

3. ログとレジスタ観察

(monitor) logLevel 3
(monitor) sysbus WhatIsAt 0x40000000
(monitor) emulation GetState

演習

  1. GPIO点滅の周期を変更し、タイマ割り込みで揺らぎを測る
  2. UART受信バッファ溢れを再現し、回復処理を実装する
  3. MMIOレジスタの誤設定を検知する防御コードを追加する