# Etkilesimli STM32 Watchdog ve Fault Recovery

<div class="mlv-demo-links">
  <a class="mlv-demo-link" href="index.html">STM32 Rotasi</a>
  <a class="mlv-demo-link" href="interactive_gpio_lab.html">GPIO Laboratuvari</a>
  <a class="mlv-demo-link" href="interactive_clock_timer_lab.html">Clock ve Timer</a>
  <a class="mlv-demo-link" href="interactive_uart_lab.html">UART ve Terminal</a>
  <a class="mlv-demo-link" href="interactive_pwm_lab.html">PWM Laboratuvari</a>
  <a class="mlv-demo-link" href="interactive_adc_lab.html">ADC ve Sensorler</a>
  <a class="mlv-demo-link" href="interactive_i2c_lab.html">I2C ve Sensorler</a>
  <a class="mlv-demo-link" href="interactive_interrupt_dma_lab.html">Interrupt ve DMA</a>
  <a class="mlv-demo-link" href="interactive_spi_lab.html">SPI ve Cevre Birimleri</a>
  <a class="mlv-demo-link" href="interactive_freertos_lab.html">FreeRTOS ve Gorevler</a>
  <a class="mlv-demo-link" href="interactive_low_power_lab.html">Low Power ve Uyku</a>
  <a class="mlv-demo-link" href="interactive_mutex_priority_lab.html">Mutex ve PI</a>
  <a class="mlv-demo-link" href="interactive_tickless_idle_lab.html">Tickless Idle</a>
  <a class="mlv-demo-link" href="interactive_event_groups_lab.html">Event Groups</a>
  <a class="mlv-demo-link" href="interactive_can_filter_lab.html">CAN Filtreleme</a>
  <a class="mlv-demo-link active" href="interactive_watchdog_fault_lab.html">Watchdog</a>
  <a class="mlv-demo-link" href="interactive_usb_cdc_ring_lab.html">USB CDC</a>
  <a class="mlv-demo-link secondary" href="../_static/demos/stm32-watchdog-fault-lab.html">Tam Ekran Demo</a>
</div>

<div class="mlv-demo-hero">
  <div class="mlv-demo-kicker">STM32 / Ders 15</div>
  <p class="mlv-demo-lead">Bu laboratuvar, `watchdog` kavramini yalnizca "timeout dolunca reset atar" seviyesinde degil; hangi kaynagin watchdog'u besledigi, `IWDG` ile `WWDG` seciminin neyi degistirdigi ve tekrarlayan resetlerin `fault recovery` olmadan nasil kolayca `boot loop`'a donustugu somut bir dayaniklilik problemi olarak gorunur kilar. Hedef, `hang`, yanlis `ISR refresh`, `window miss` ve `safe mode` toparlanmasini ayni zaman cizelgesinde sezgisel hale getirmektir.</p>
</div>

<div class="mlv-demo-grid">
  <div class="mlv-demo-panel">
    <strong>Ne Yap</strong>
    <span>Fault senaryosunu, watchdog tipini, refresh kaynagini, timeout degerini ve toparlanma politikasini degistir; ardindan reset zincirini ve ayakta kalma davranisini izle.</span>
  </div>
  <div class="mlv-demo-panel">
    <strong>Ne Ogren</strong>
    <span>`IWDG`, `WWDG`, `refresh source`, `early refresh`, `timeout reset`, `safe mode` ve `boot loop` kavramlarinin neden ayni karar zincirine ait oldugunu gor.</span>
  </div>
  <div class="mlv-demo-panel">
    <strong>Gorev</strong>
    <span>Once sistemin watchdog kapaliyken nasil asili kaldigini gor. Sonra `timer ISR` ile yanlis besleme yolunu dene; en sonda supervisor tabanli bir stratejiyle fault'u sinirla ve gerekiyorsa safe mode'a dus.</span>
  </div>
</div>

<div class="mlv-demo-note">
Watchdog'un degeri reset atmasindan cok, reset kararini kimin verdigidir. Yanlis yere konmus bir `refresh`, asili kalmis sistemi "saglikli" gibi gosterebilir; iyi bir recovery politikasi ise tekrarlayan resetleri kontrollu bir `safe mode` davranisina cevirebilir.
</div>

<iframe
  class="mlv-demo-frame"
  src="../_static/demos/stm32-watchdog-fault-lab.html"
  title="STM32 Watchdog ve Fault Recovery"
  loading="lazy"
  frameborder="0"
></iframe>

## Bu Derste Ne Oturmali?

1. `IWDG`, basit ve guvenilir bir "beni unutma" sinyali ister; ama yanlis yerden beslenirse asil fault'u saklayabilir.
2. `WWDG`, cok erken refresh'e de tepki vererek "sadece bir yerde birileri refresh ediyor" mantiginin her zaman yeterli olmadigini gosterir.
3. `Refresh`'i `timer ISR` icine koymak kolay gorunse de, asil gorulmesi gereken ana gorev sagligini gizleyebilir.
4. Dogru `fault recovery`, her resetten sonra ayni duvara vurmak degil; reset nedenini okumak, tekrar sayisini izlemek ve gerekirse `safe mode` ile sistemi kullaniciya geri vermektir.

```{note}
Bir sonraki dogal laboratuvarlar `reset reason + backup registers`, `stream buffer / message buffer`, `USB CDC + DMA / double buffer` ya da `FDCAN + mailbox` olabilir.
```
