Embedded Systems und Firmware

Warum wird in der Firmware kleiner Mikrocontroller häufig auf dynamische Speicherbelegung wie malloc verzichtet?

  1. AWeil auf Mikrocontrollern keinerlei C-Funktionen verwendet werden können
  2. BWeil der RAM klein ist, die Belegung durch Fragmentierung fehlschlagen kann und die Belegungsdauer schwer vorhersagbar ist
  3. CWeil dynamisch belegter Speicher auch nach dem Ausschalten erhalten bleibt
Antwort und Erläuterung anzeigen

Antwort: B. Weil der RAM klein ist, die Belegung durch Fragmentierung fehlschlagen kann und die Belegungsdauer schwer vorhersagbar ist

Bei einem Mikrocontroller mit nur einigen KB bis einigen hundert KB RAM wird der freie Speicher durch wiederholtes Belegen und Freigeben zerstückelt, sodass eine große Belegung trotz ausreichender Gesamtmenge fehlschlagen kann. Bei Geräten, die monatelang laufen, besteht die Gefahr, dass dies irgendwann geschieht. Da die Belegungsdauer nicht konstant ist, eignet es sich auch nicht für Echtzeitverarbeitung. Deshalb wird häufig so entworfen, dass der benötigte Speicher zu Beginn statisch belegt wird.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Embedded Systems und Firmware

  1. Was ist bei einem kleinen Mikrocontroller ohne MMU im Hinblick auf übermäßige Stack-Nutzung zu beachten?
  2. Ein 12-Bit-ADC mit 3.3 V Referenzspannung liefert den Wert 2048. Welcher Wert kommt der Eingangsspannung am nächsten?
  3. Welchen Vorteil hat der Einsatz von DMA, wenn Wandlungsergebnisse eines ADC in gleichmäßigen Abständen in großer Zahl erfasst werden?
  4. Worauf ist zu achten, wenn Peripherieregister in C mit einer Struktur aus Bitfeldern dargestellt werden?
  5. Welchen Vorteil hat es bei vielen Mikrocontrollern, große unveränderliche Tabellen (z. B. Schriftdaten) mit const zu deklarieren?

Vergleiche zu diesem Thema