Embedded systemen en firmware

Waarom is het niet goed om het resetten (kicken) van de watchdogtimer onvoorwaardelijk uit te voeren in een timerinterrupthandler die elke 1 ms optreedt?

  1. AOmdat een watchdog volgens afspraak niet vanuit een interrupt mag worden aangeraakt
  2. BOmdat de interrupt blijft werken, ook als het hoofdprogramma vastloopt in bijvoorbeeld een oneindige lus, zodat de watchdog de afwijking niet meer kan detecteren
  3. COmdat de watchdog kapotgaat als hij elke 1 ms wordt gekickt
Antwoord en toelichting tonen

Antwoord: B. Omdat de interrupt blijft werken, ook als het hoofdprogramma vastloopt in bijvoorbeeld een oneindige lus, zodat de watchdog de afwijking niet meer kan detecteren

Een watchdog is een mechanisme dat de microcontroller reset als er niet binnen een vastgestelde tijd wordt gekickt, zodat hij herstelt van vastlopen. Een timerinterrupt blijft echter werken ook als het hoofdprogramma stilstaat, dus onvoorwaardelijk kicken daarin maakt het onmogelijk te merken dat het systeem stilstaat. Het is de basisregel om te controleren dat de hoofdlus en elke taak normaal een ronde hebben voltooid en alleen te kicken wanneer alle aanwezig zijn.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Embedded systemen en firmware

  1. Welke uitspraak over de rol van de bootloader van embedded apparatuur is juist?
  2. Waarom worden bij apparaten waarvan de firmware draadloos wordt bijgewerkt (OTA-update) in het flashgeheugen twee plaatsen (vlak A en vlak B) voor de firmware voorzien?
  3. Wat is het belangrijkste doel van de slaapmodus van een microcontroller in een apparaat op batterijen?
  4. Een sensorapparaat werkt slechts 1 % van de tijd met 10 mA en slaapt de overige 99 % van de tijd met 10 µA. Wat komt het dichtst bij de gemiddelde stroom?
  5. Wat is de juiste reden dat in de firmware van kleine microcontrollers vaak dynamische geheugenreservering zoals malloc wordt vermeden?

Vergelijkingen bij dit onderwerp