Embedded systemen en firmware

Wat is de juiste reden dat in de firmware van kleine microcontrollers vaak dynamische geheugenreservering zoals malloc wordt vermeden?

  1. AOmdat in microcontrollers helemaal geen C-functies kunnen worden gebruikt
  2. BOmdat het RAM klein is en reserveren door fragmentatie kan mislukken en de tijd die reserveren kost moeilijk te voorspellen is
  3. COmdat dynamisch gereserveerd geheugen ook na het uitschakelen van de voeding niet verdwijnt
Antwoord en toelichting tonen

Antwoord: B. Omdat het RAM klein is en reserveren door fragmentatie kan mislukken en de tijd die reserveren kost moeilijk te voorspellen is

Als bij een microcontroller met slechts enkele KB tot enkele honderden KB RAM herhaaldelijk wordt gereserveerd en vrijgegeven, raakt de vrije ruimte in kleine stukken verdeeld en kan een grote reservering mislukken, ook al is het totaal voldoende. Bij apparaten die maandenlang werken, bestaat het risico dat het ooit mislukt. Omdat de benodigde tijd bovendien niet constant is, is het ongeschikt voor real-time verwerking. Daarom wordt vaak een ontwerp gebruikt waarbij het benodigde geheugen vooraf statisch wordt gereserveerd.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Embedded systemen en firmware

  1. Waarop moet worden gelet met betrekking tot overmatig stackgebruik bij een kleine microcontroller zonder MMU?
  2. 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?
  3. Wat is het voordeel van het gebruik van DMA wanneer een microcontroller een grote hoeveelheid AD-omzettingsresultaten met vaste tussenpozen inleest?
  4. Waarop moet worden gelet wanneer in C met een structuur met bitvelden de registers van een randschakeling worden voorgesteld?
  5. Welk voordeel heeft het declareren van een grote, ongewijzigde tabel (zoals lettertypegegevens) met const bij veel microcontrollers?

Vergelijkingen bij dit onderwerp