J'ai un prototype de périphérique à ressources limitées (microcontrôleur 8 bits avec firmware sans système d'exploitation), interagissant avec un serveur Web. Je me demande s'il existe des solutions, des cadres ou des services cloud pour mettre à jour le micrologiciel de mon appareil à partir du Web. D'après mes recherches, il y a Microsoft IoT Hub, mais je crains qu'il ne convienne pas à de tels appareils à ressources limitées. J'ai trouvé une autre solution: le portail mbed Cloud, mais je ne sais pas comment cela fonctionne. Quelqu'un peut-il m'aider via un conseil, peut-être existe-t-il des meilleures pratiques pour implémenter la mise à niveau du micrologiciel par liaison radio pour les appareils intégrés de manière sécurisée et robuste?
9
Réponses:
Je ne répondrai qu'à cette partie, car je ne connais aucun système «prêt à l'emploi» pour un firwmare inconnu.
En termes de pratique, je ferais ce qui suit:
1) Avoir un chargeur de démarrage très minimal, quelque chose d'aussi stupide que possible, seul responsable du chargement du firmware avec les contraintes suivantes:
2) Configurez votre stockage pour avoir deux "banques de démarrage" de taille raisonnable pour gérer l'évolution future et la croissance du firmware.
3) Vérifiez la somme de l'image du micrologiciel après le téléchargement pour vous assurer qu'elle est correcte avant de la graver, vérifiez la banque de destination après la gravure pour vous assurer qu'elle n'échouera pas au démarrage pour un bit manquant quelque part.
Le point ignoré est généralement la somme de contrôle de l'image téléchargée avant et après la gravure, ce qui entraîne un système corrompu écrit sur l'appareil. L'utilisation de deux banques et l'alternance facilitent généralement le processus de mise à jour.
la source
mbed cloud offre une fonctionnalité complète de mise à jour du firmware, mais je pense que vous auriez du mal à le porter sur votre plate-forme si vous exécutez sans système d'exploitation. Je ne pense pas que la source soit ouverte aujourd'hui, vous ne pouvez donc même pas l'utiliser comme référence. Je ne sais pas non plus quels sont les critères d'accès pour le moment.
Vous devez réfléchir aux fonctionnalités dont vous avez besoin - s'agit-il d'un déploiement à grande échelle où vous devez être en mesure de faire des déploiements de micrologiciel par étapes, vous souciez-vous de signer le micrologiciel ou votre plate-forme est-elle complètement ouverte à toute personne disposant d'un accès physique? À quel point vous souciez-vous de pouvoir récupérer un périphérique maillé sans JTAG?
De façon réaliste, des fonctionnalités telles que les mises à jour OTA sont probablement quelque chose qui motive la sélection de votre système d'exploitation et de votre appareil - une fois que vous tenez compte des coûts de développement.
la source
Découvrez OTA qui est l'abréviation d'Over The Air. Arduino a cette propriété .
Vous pouvez effectuer une mise à jour avec Arduino IDE, un navigateur Web ou un serveur HTTP.
la source
Vous pourriez jeter un œil à Particle (IoT) . Je ne suis pas sûr qu'ils prennent en charge Arduino, mais ils proposent eux-mêmes des cartes intégrées bon marché.
la source
Une plate-forme plus intéressante, j'ai découvert est DeviceDrive . Voici la vidéo expliquant comment les choses fonctionnent. Leur système OTA semble être assez flexible.
la source