La réponse simple est oui - vous avez besoin de suffisamment de blocs flash pour prendre en charge le bootloader et les images de code A / B si vous voulez une haute fiabilité. Avant d'activer la nouvelle image, vous pouvez écrire le tout, le vérifier et éventuellement réessayer.
Cependant, c'est une stratégie coûteuse / fiable et il y a des choses que vous pouvez faire pour réduire les frais généraux. La prise en charge de bas niveau des mises à jour OTA peut également faire partie du micrologiciel ou du système d'exploitation de l'appareil, vous pouvez donc éviter de rouler vous-même à moins que vous ne vouliez apprendre. Cette fonctionnalité peut être décrite comme FOTA
.
Le partitionnement de votre base de code permet des mises à jour incrémentielles, dans le meilleur des cas, le chargeur de démarrage est en mesure de mettre en place la connexion réseau, de télécharger et de vérifier le code sans avoir besoin de code utilisateur de secours. Avec une passerelle locale, la gestion de cette tâche peut être déléguée à partir des points de terminaison à faible coût.
De nombreux appareils ont une petite quantité de flash d'effacement des mots, et même à défaut, vous pouvez généralement définir des bits sans avoir à effacer un bloc entier. Ces fonctionnalités peuvent être utilisées pour manipuler des tables de sauts et assembler du code mis à jour par blocs de tailles de blocs. Même si vous avez initialement prévu un espace de code A / B complet, vous devrez peut-être revenir à un schéma plus complexe lorsque la base de code se développe trop.
Pour clarifier les fonctionnalités qui peuvent être obtenues avec une solution sophistiquée de micrologiciel par voie hertzienne, le chargeur de démarrage et potentiellement une pile de communication principale peuvent rester résidents tandis que l'espace d'application utilisateur restant est flashé à nouveau. Cela ne nécessite aucune surcharge (en particulier si le partitionnement de bloc est doux). Dans le scénario où la pile de communication doit être mise à niveau, la région généralement utilisée pour le code d'application peut être temporairement utilisée pendant le téléchargement et la vérification. Pour y parvenir, il faut un certain support dans le SoC, mais les appareils de 2e et 3e génération conçus dans cet esprit existent déjà.