Hallo,
es gibt ja die Möglichkeit ein Firmware-Update mittels Bootloader
durchzuführen. Dabei wird aber die Firmware komplett neu (bis auf den
Bootloader) in den internen Flash geschrieben.

Ist es möglich Firmware auch modular im internen Flash auszutauschen?
Ich stelle mir das Ganze so vor:
-Hauptmodul (enthält Firmware-Updater)
-Tabelle mit Funktionszeigern
-Funktionsmodul 1
-Funktionsmodul 2
-Datenmodul 1
-Datenmodul 2
-Bootloader

Die Funktions- und Datenmodule liegen mit ausreichend Platz
zwischeneinander (für Änderungen der Module) im Flash an festen
Adressen. Die Adressen werden im Linkerskript festgelegt.
Alle Funktionen in den Funktionsmodulen können mittels Funktionszeigern
vom Hauptmodul aufgerufen werden. Funktionsaufrufe innerhalb der
Funktionsmodule sollten ohne Funktionszeiger funktionieren.

Wenn ein Funktions- oder Datenmodul ausgetauscht werden soll, dann
befindet sich das Hauptmodul in der Firmware-Update-Funktion.
Diese überschreibt den internen Flash mit dem neuen Modul aus dem
externen Flash. Danach wird ein Software-Reset ausgeführt um
Inkonsistenzen zu verhindern.

Ich habe bisher nirgends ein Konzept für so etwas gefunden. Kann ich
also davon ausgehen, dass ein modulares Firmware-Update aufgrund
bestimmter Dinge unpraktikabel bzw. unmöglich ist?

Antworten die über ein "geht"/ "geht nicht" hinausgehen würde ich toll
finden. Ich denke dass eine evtl. angestossene Diskussion auch Anderen
ein besseres Verständnis über die Funktionsweise von Mikrocontrollern
geben würde.