{"id":845,"date":"2025-04-09T20:23:52","date_gmt":"2025-04-10T03:23:52","guid":{"rendered":"https:\/\/www.redstoneota.com\/?p=845"},"modified":"2025-04-14T22:49:57","modified_gmt":"2025-04-15T05:49:57","slug":"reliable-fota-on-rtos-devices-without-file-systems-breakpoint-resume","status":"publish","type":"post","link":"http:\/\/www.redstoneota.com\/fr\/reliable-fota-on-rtos-devices-without-file-systems-breakpoint-resume\/","title":{"rendered":"FOTA fiable sur les dispositifs RTOS sans syst\u00e8mes de fichiers : Reprise des points d'arr\u00eat et m\u00e9canisme de protection contre les pannes de courant"},"content":{"rendered":"<h2 class=\"wp-block-heading\"><strong>R\u00e9sum\u00e9<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dans le paysage croissant des appareils portables et IoT, beaucoup s'appuient sur des syst\u00e8mes d'exploitation en temps r\u00e9el (RTOS) qui sont d\u00e9pouill\u00e9s pour des raisons de performance, de taille et d'efficacit\u00e9 \u00e9nerg\u00e9tique. Ces syst\u00e8mes excluent souvent la prise en charge des syst\u00e8mes de fichiers afin de r\u00e9duire la consommation de ressources. Cependant, cela repr\u00e9sente un d\u00e9fi important lors de la mise en \u0153uvre de mises \u00e0 jour fiables de microprogrammes par voie a\u00e9rienne (FOTA). Ce livre blanc pr\u00e9sente la solution de Redstone OTA : un m\u00e9canisme robuste de reprise des points d'arr\u00eat et d'int\u00e9grit\u00e9 des donn\u00e9es qui permet un FOTA r\u00e9silient directement sur la m\u00e9moire Flash brute, garantissant la fiabilit\u00e9 des mises \u00e0 jour m\u00eame en cas de coupure de courant ou d'arr\u00eats inattendus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. Introduction<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 mesure que les appareils deviennent plus petits et plus sensibles \u00e0 la consommation d'\u00e9nergie, en particulier dans des secteurs tels que les appareils portables, les fabricants se tournent de plus en plus vers les plates-formes RTOS. Les syst\u00e8mes bas\u00e9s sur les RTOS sont tr\u00e8s efficaces mais manquent souvent de l'abstraction de stockage fournie par les syst\u00e8mes de fichiers. Les mises \u00e0 jour de microprogrammes sur ces syst\u00e8mes sont confront\u00e9es \u00e0 des probl\u00e8mes de fiabilit\u00e9 critiques, en particulier dans les environnements o\u00f9 l'instabilit\u00e9 du r\u00e9seau ou la perte d'\u00e9nergie sont possibles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Redstone OTA offre une solution FOTA sp\u00e9cialis\u00e9e con\u00e7ue pour ces contraintes. En introduisant une m\u00e9thode pour suivre et v\u00e9rifier la progression du t\u00e9l\u00e9chargement du micrologiciel au niveau de la m\u00e9moire flash, notre approche permet des mises \u00e0 jour fiables et reproductibles du micrologiciel, m\u00eame dans des environnements d\u00e9pourvus de syst\u00e8me de fichiers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. D\u00e9finition du probl\u00e8me<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Sans syst\u00e8me de fichiers, le micrologiciel doit \u00eatre t\u00e9l\u00e9charg\u00e9 et \u00e9crit directement dans la m\u00e9moire Flash brute (NOR ou NAND). Les protocoles de t\u00e9l\u00e9chargement standard supposent l'existence d'un syst\u00e8me de fichiers \u00e0 g\u00e9rer :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stockage partiel des donn\u00e9es<\/li>\n\n\n\n<li>V\u00e9rification de l'int\u00e9grit\u00e9<\/li>\n\n\n\n<li>Reprise des points apr\u00e8s une interruption<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Cela pose plusieurs probl\u00e8mes :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Risque de perte de donn\u00e9es pendant le t\u00e9l\u00e9chargement<\/strong> en raison d'une panne d'\u00e9lectricit\u00e9<\/li>\n\n\n\n<li><strong>Incapacit\u00e9 de reprendre<\/strong> apr\u00e8s une interruption, n\u00e9cessitant un rechargement complet<\/li>\n\n\n\n<li><strong>Pas de stockage de m\u00e9tadonn\u00e9es<\/strong> pour indiquer l'\u00e9tat du t\u00e9l\u00e9chargement<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ces probl\u00e8mes rendent les mises \u00e0 jour OTA peu fiables et co\u00fbteuses en termes de temps, de bande passante et d'exp\u00e9rience utilisateur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. Aper\u00e7u technique de la solution Redstone OTA<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3.1 Disposition de la m\u00e9moire flash<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L'OTA Redstone partitionne la m\u00e9moire Flash de l'appareil en deux zones fonctionnelles :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Zone d'enregistrement :<\/strong> Utilis\u00e9 pour enregistrer l'\u00e9tat de chaque bloc de donn\u00e9es t\u00e9l\u00e9charg\u00e9, y compris le hachage pour v\u00e9rification.<\/li>\n\n\n\n<li><strong>Zone de stockage des donn\u00e9es :<\/strong> Enregistre le t\u00e9l\u00e9chargement actuel du micrologiciel.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" width=\"773\" height=\"503\" src=\"https:\/\/www.redstoneota.com\/wp-content\/uploads\/2025\/04\/Data-storage-and-download-information-record-process-in-flash.jpg\" alt=\"Data storage and download information record process in flash\" class=\"wp-image-846\" srcset=\"https:\/\/www.redstoneota.com\/wp-content\/uploads\/2025\/04\/Data-storage-and-download-information-record-process-in-flash.jpg 773w, https:\/\/www.redstoneota.com\/wp-content\/uploads\/2025\/04\/Data-storage-and-download-information-record-process-in-flash-480x312.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 773px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Stockage des donn\u00e9es et processus d'enregistrement des informations de t\u00e9l\u00e9chargement dans la m\u00e9moire flash<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3.2 Mappage des blocs et des pages<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chaque bloc de donn\u00e9es correspond \u00e0 une entr\u00e9e sp\u00e9cifique (page) dans la zone d'enregistrement. Par exemple :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bloc 0 \u2192 Page 0<\/li>\n\n\n\n<li>Bloc 1 \u2192 Page 1 ...<\/li>\n\n\n\n<li>Bloc N \u2192 Page N<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Chaque page comprend<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Index des blocs<\/li>\n\n\n\n<li>Hachage des donn\u00e9es stock\u00e9es (par exemple, CRC32 ou MD5)<\/li>\n\n\n\n<li>Indicateur de validit\u00e9 (indiquant si le bloc est complet)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>4. Processus de t\u00e9l\u00e9chargement et de v\u00e9rification du micrologiciel<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Processus de t\u00e9l\u00e9chargement \u00e9tape par \u00e9tape<\/strong><\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Lancer le t\u00e9l\u00e9chargement :<\/strong> L'appareil envoie une requ\u00eate au serveur pour obtenir des donn\u00e9es sur le micrologiciel.<\/li>\n\n\n\n<li><strong>\u00c9criture dans le bloc de donn\u00e9es :<\/strong> Le morceau t\u00e9l\u00e9charg\u00e9 est \u00e9crit dans le bloc correspondant de la zone de stockage des donn\u00e9es.<\/li>\n\n\n\n<li><strong>V\u00e9rification de l'ach\u00e8vement :<\/strong> Une fois qu'un bloc est enti\u00e8rement \u00e9crit, son hachage est calcul\u00e9.<\/li>\n\n\n\n<li><strong>Ecriture dans la zone d'enregistrement :<\/strong> Le hachage et l'indicateur de validit\u00e9 sont enregistr\u00e9s dans la page correspondante.<\/li>\n\n\n\n<li><strong>R\u00e9p\u00e9tez l'op\u00e9ration jusqu'\u00e0 ce qu'elle soit termin\u00e9e :<\/strong> Le processus se poursuit pour tous les blocs.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Gestion des pannes d'\u00e9lectricit\u00e9<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si l'appareil s'\u00e9teint au milieu du t\u00e9l\u00e9chargement :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Au red\u00e9marrage, le syst\u00e8me lit tous les enregistrements de hachage.<\/li>\n\n\n\n<li>Il recalcule le hachage de chaque bloc de donn\u00e9es et le compare au hachage stock\u00e9.<\/li>\n\n\n\n<li><strong>Match :<\/strong> Le bloc est complet ; passer.<\/li>\n\n\n\n<li><strong>Inad\u00e9quation ou vide :<\/strong> Le bloc n'est pas valide ; ret\u00e9l\u00e9charger.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Cela garantit que seuls les blocs incomplets ou corrompus sont ret\u00e9l\u00e9charg\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>5. Logique de reprise et assurance de l'int\u00e9grit\u00e9<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Ce m\u00e9canisme permet un suivi d\u00e9terministe et v\u00e9rifiable de l'\u00e9tat des t\u00e9l\u00e9chargements sans syst\u00e8me de fichiers. Les avantages sont les suivants<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Utilisation efficace de la bande passante en ne ret\u00e9l\u00e9chargeant que les donn\u00e9es incompl\u00e8tes<\/li>\n\n\n\n<li>Reprise instantan\u00e9e \u00e0 partir du dernier bloc valide<\/li>\n\n\n\n<li>M\u00e9tadonn\u00e9es l\u00e9g\u00e8res n\u00e9cessitant un espace Flash minimal<\/li>\n\n\n\n<li>Protection contre l'alt\u00e9ration des donn\u00e9es en cas d'arr\u00eat inopin\u00e9<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>6. Avantages de l'approche OTA Redstone<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-table is-style-regular has-small-font-size\"><table><thead><tr><th><strong>Fonctionnalit\u00e9<\/strong><\/th><th><strong>B\u00e9n\u00e9fice<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Aucun syst\u00e8me de fichiers n'est n\u00e9cessaire<\/td><td>Fonctionne dans des environnements RTOS minimaux<\/td><\/tr><tr><td>Validation bas\u00e9e sur le hachage<\/td><td>Garantit l'int\u00e9grit\u00e9 des donn\u00e9es avant l'application du micrologiciel<\/td><\/tr><tr><td>R\u00e9cup\u00e9ration en cas de panne de courant<\/td><td>R\u00e9sistance aux interruptions inattendues<\/td><\/tr><tr><td>Faible surcharge de m\u00e9moire<\/td><td>Optimis\u00e9 pour les dispositifs contraignants<\/td><\/tr><tr><td>\u00c9volutif<\/td><td>Fonctionne avec des mises \u00e0 jour compress\u00e9es\/chiffr\u00e9es\/delta<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>7. Lignes directrices de mise en \u0153uvre<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Algorithme de hachage :<\/strong> CRC32 recommand\u00e9 pour l'\u00e9quilibre vitesse\/fiabilit\u00e9<\/li>\n\n\n\n<li><strong>Redondance :<\/strong> Dupliquer le bloc d'enregistrement pour le sauvegarder en cas d'usure de la m\u00e9moire flash ou d'alt\u00e9ration des bits.<\/li>\n\n\n\n<li><strong>Protection de l'\u00e9criture :<\/strong> Verrouiller la zone d'enregistrement une fois qu'elle est termin\u00e9e afin d'\u00e9viter toute modification involontaire<\/li>\n\n\n\n<li><strong>R\u00e9glage de la taille des blocs :<\/strong> Adaptation de la taille des blocs \u00e0 la granularit\u00e9 d'effacement et d'\u00e9criture de la Flash pour plus d'efficacit\u00e9<\/li>\n\n\n\n<li><strong>Localisation de la zone d'enregistrement :<\/strong> Pr\u00e9f\u00e9rer un espace d'adressage fixe pour un acc\u00e8s plus rapide et des v\u00e9rifications au d\u00e9marrage du syst\u00e8me<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>8. Cas d'utilisation<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Cette solution est id\u00e9ale pour :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>V\u00eatements intelligents (par exemple, trackers de fitness, smartwatches)<\/li>\n\n\n\n<li>Oreillettes st\u00e9r\u00e9o sans fil (TWS)<\/li>\n\n\n\n<li>Capteurs et microcontr\u00f4leurs industriels<\/li>\n\n\n\n<li>Produits IoT grand public avec un minimum de Flash et de RAM<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>9. Conclusion<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Le m\u00e9canisme de reprise des points d'arr\u00eat de Redstone OTA red\u00e9finit ce qui est possible pour les mises \u00e0 jour de microprogrammes dans des environnements tr\u00e8s contraints. En g\u00e9rant les donn\u00e9es et l'\u00e9tat directement sur la Flash brute, nous garantissons des performances OTA fiables sans avoir besoin d'un syst\u00e8me de fichiers, ce qui en fait le choix id\u00e9al pour la prochaine g\u00e9n\u00e9ration d'appareils compacts et connect\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\u00c0 propos de Redstone OTA<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Redstone OTA fournit une plateforme FOTA (firmware over-the-air) hautement \u00e9volutive et s\u00e9curis\u00e9e pour les appareils connect\u00e9s dans plus de 226 pays et r\u00e9gions. Notre technologie permet des mises \u00e0 jour intelligentes et fiables des micrologiciels pour les syst\u00e8mes embarqu\u00e9s, des appareils de pointe aux flottes mondiales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Site web :<\/strong> <a href=\"http:\/\/www.redstoneota.com\/fr\/\">www.redstoneota.com<\/a><br><strong>Courriel :<\/strong> <a href=\"mailto:support@redstoneota.com\">support@redstoneota.com<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>M\u00e9canisme FOTA l\u00e9ger permettant une reprise fiable des points d'arr\u00eat et l'int\u00e9grit\u00e9 des donn\u00e9es pour les appareils RTOS sans syst\u00e8me de fichiers, garantissant des mises \u00e0 jour r\u00e9silientes du micrologiciel directement sur la m\u00e9moire Flash, m\u00eame en cas de coupure de courant.<\/p>","protected":false},"author":2,"featured_media":981,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[173],"tags":[177,174,175,116,91,176],"class_list":["post-845","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-whitepaper","tag-breakpoint-resume","tag-firmware-over-the-air","tag-firmware-updates","tag-fota","tag-redstone-ota","tag-rtos"],"_links":{"self":[{"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/posts\/845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/comments?post=845"}],"version-history":[{"count":13,"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/posts\/845\/revisions"}],"predecessor-version":[{"id":868,"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/posts\/845\/revisions\/868"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/media\/981"}],"wp:attachment":[{"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/media?parent=845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/categories?post=845"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.redstoneota.com\/fr\/wp-json\/wp\/v2\/tags?post=845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}