Embedded Systems und Firmware
Warum wird in der Firmware kleiner Mikrocontroller häufig auf dynamische Speicherbelegung wie malloc verzichtet?
- AWeil auf Mikrocontrollern keinerlei C-Funktionen verwendet werden können
- BWeil der RAM klein ist, die Belegung durch Fragmentierung fehlschlagen kann und die Belegungsdauer schwer vorhersagbar ist
- 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.