Nach der ausführlichen Erläuterung des SSBL und seiner Beziehung zur Applikationssoftware stellt sich die Frage nach der Aufgabe des SSBL-Programms. Dieses Programm muss mindestens die aktuelle Applikation erkennen und dann zu dieser Adresse hin verzweigen. Der Ort der verschiedenen Applikationen im Speicher des Mikrocontrollers wird im Allgemeinen in einem Inhaltsverzeichnis (ToC, Table of Contents) hinterlegt (Bild 3).
Die ToC ist ein gemeinsam genutzter persistener Speicher, über den SSBL und Applikationssoftware miteinander kommunizieren. Am Ende des OTA-Update-Prozesses wird das Inhaltsverzeichnis mit den neuen Applikationsinformationen aktualisiert. Teile der OTA-Update-Funktionalität können auch in den SSBL geschoben werden. Zu entscheiden, welche Teile dies sind, ist eine wichtige Aufgabe bei der Entwicklung von OTA-Update-Software.
Der oben beschriebene minimale SSBL ist äußerst einfach, lässt sich einfach überprüfen und benötigt höchstwahrscheinlich keine Modifikationen über die Lebensdauer der Applikation. Jedoch bedeutet dies, dass jede Applikation für das Herunterladen und die Überprüfung der nächsten Applikation verantwortlich sein muss. Dies kann zu Code-Duplikation bei Funk-Stack, Device Firmware und OTA-Update-Software führen.
Andererseits könnte auch der gesamte OTA-Update-Prozess in den SSBL verschoben werden. In diesem Szenario setzen Applikationen einfach eine Markierung (Flag) in der ToC, um ein Update anzufordern und setzen dann das System zurück. Der SSBL führt dann den Download-Vorgang und den Verifikationsprozess durch. Dies minimiert eine eventuelle Code-Duplikation und vereinfacht die applikationsspezifische Software.
Allerdings entsteht daraus die neue Herausforderung, möglicherweise den SSBL selbst aktualisieren zu müssen (den Update-Code zu aktualisieren). Letztendlich wird die Entscheidung, über Funktionsverlagerung in den SSBL, von den Speicherbedingungen des Clients, der Ähnlichkeit zwischen heruntergeladenen Applikationen und der Portierbarkeit der OTA-Update-Software abhängen.
Eine weitere wichtige Entscheidung bei der Entwicklung der OTA-Update-Software betrifft die Organisation der eintreffenden Applikationen im Speicher beim OTA-Update-Prozess. Mikrocontroller enthalten normalerweise nichtflüchtigen und flüchtigen Speicher (Flash-Memory oder SRAM). Im Flash-Speicher befinden sich der Programmcode und Nur-Lese-Daten (Read Only) einer Applikation, zusammen mit anderen System-Level-Daten wie das Inhaltsverzeichnis und ein Ereignisprotokoll.
Das SRAM wird genutzt, um modifizierbare Teile der Software-Applikation zu speichern, zum Beispiel nicht konstante globale Größen und der Stack. Die Binärdarstellung der Software-Applikation in (Bild 1, unten) enthält lediglich den Programmteil aus dem nichtflüchtigen Speicher. Die Applikation initialisiert die Teile, welche sich beim Einschaltvorgang im flüchtigen Speicher befinden.
Während des OTA-Update-Prozesses wird jedes Mal, wenn der Client vom Server ein Datenpaket mit einem Teil des Programms empfängt, das Datenpaket im SRAM gespeichert. Das Datenpaket kann komprimiert oder unkomprimiert sein. Der Vorteil der Komprimierung des Applikationsprogramms ist, dass es dadurch kleiner wird und somit weniger Datenpakete übertragen werden müssen. Außerdem verringert dies den Platzbedarf zum Speichern der Datenpakete im SRAM während des Herunterladens. Nachteilig bei diesem Konzept ist die zusätzliche Verarbeitungszeit beim Update-Prozess durch die Komprimierung und Entkomprimierung. Außerdem muss zur Komprimierung gehörender Code in der OTA-Update-Software gebündelt werden.
Da die neue Applikationssoftware auf den Flash-Speicher abzielt, während der Aktualisierung aber im SRAM eintrifft, muss die OTA-Update-Software zu irgendeinem Zeitpunkt des Updates die Daten in den Flash-Speicher schreiben. Das temporäre Speichern der neuen Applikation im SRAM heißt Caching. Zum Caching der OTA-Update-Software gibt es drei verschiedene Ansätze:
Das zweite Schema des partiellen Caching während eines OTA-Updates zeigt Bild 5. Darin wurde der Teil des Flash-Speichers für Applikation A aus den Bildern 3 und 4 vergrößert und ein funktionales Speicherabbild für das SRAM des SSBLs gezeigt. Die Flash-Seiten-Größe beträgt im Beispiel 2 kB. Letztlich wird sich die Entwicklungsentscheidung nach der Größe der neuen Applikation und der erlaubten Komplexität der OTA-Update-Software richten.