Embedded systemen en firmware

Waarop moet worden gelet met betrekking tot overmatig stackgebruik bij een kleine microcontroller zonder MMU?

  1. ADe stack wordt automatisch onbeperkt groot, dus daar hoeft men niet op te letten
  2. BAls de stack overloopt, wordt altijd een foutmelding getoond
  3. CEen stackoverflow wordt niet direct gedetecteerd en kan stilzwijgend naburige gegevens beschadigen; daarom vermijdt men diepe recursie en grote lokale arrays en schat men het gebruik in
Antwoord en toelichting tonen

Antwoord: C. Een stackoverflow wordt niet direct gedetecteerd en kan stilzwijgend naburige gegevens beschadigen; daarom vermijdt men diepe recursie en grote lokale arrays en schat men het gebruik in

Bij pc-besturingssystemen kan een overloop worden gedetecteerd door voorbij de stack een pagina met toegangsverbod te plaatsen, maar bij microcontrollers zonder MMU ontbreekt dit mechanisme vaak en overschrijft een overlopende stack stilzwijgend variabelen en dergelijke daarachter. Het symptoom verschijnt elders, zodat de oorzaak moeilijk te vinden is. Men vermijdt diepe recursie en grote lokale arrays, schat het maximale gebruik met tools in en controleert of een markering aan het einde van de stack onbeschadigd is.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Embedded systemen en firmware

  1. Bij een 12-bits AD-omzetter met een referentiespanning van 3,3 V is de uitgelezen waarde 2048. Wat komt het dichtst bij de ingangsspanning?
  2. Wat is het voordeel van het gebruik van DMA wanneer een microcontroller een grote hoeveelheid AD-omzettingsresultaten met vaste tussenpozen inleest?
  3. Waarop moet worden gelet wanneer in C met een structuur met bitvelden de registers van een randschakeling worden voorgesteld?
  4. Welk voordeel heeft het declareren van een grote, ongewijzigde tabel (zoals lettertypegegevens) met const bij veel microcontrollers?
  5. Wat kan met debuginterfaces zoals JTAG en SWD worden gedaan?

Vergelijkingen bij dit onderwerp