[ad_1]

Lors de la mise à jour du logiciel d’appareils déjà déployés, nous utilisons sans fil Over-The-Air (OTA) mises à jour. Mais il y a un temps avant le déploiement, lorsque le matériel est vide et que vous devez programmer la première image du micrologiciel sur vos appareils.

Aujourd’hui, nous examinons comment utiliser l’outil thsq-device-flasher pour graver des images de micrologiciel individuelles sur un grand nombre (10-1000) d’appareils. Cela permet de gagner un temps considérable lors du développement, des tests, des déploiements de validation de principe, ainsi que lors de la fabrication en usine d’un parc d’appareils.

Tout au long de cet article, nous utilisons le LPSTK plate-forme matérielle de Texas Instruments et son microprocesseur CC1352r1.

Il y a un temps avant le déploiement, lorsque le matériel est vierge, et vous devez programmer la première image du micrologiciel sur vos appareils.

Qu’est-ce qu’une image de micrologiciel?

Une image du micrologiciel est un vidage de toute la mémoire du microprocesseur de votre périphérique matériel. L’image du micrologiciel contient le programme, le système d’exploitation, la pile de communication, les pilotes de périphérique et les autres logiciels dont votre périphérique a besoin. Sans cela, le microprocesseur ne peut pas fonctionner.

Lorsque vous recevez un microprocesseur du fabricant du microprocesseur, il est complètement vide. Pour qu’il fasse quelque chose d’utile, vous devez graver votre propre image de firmware dans sa mémoire flash. C’est ce qu’on appelle la programmation de l’appareil.

La programmation d’un appareil se fait généralement avec un matériel spécial, appelé programmeur. Le programmeur est connecté à votre matériel cible avec un câble spécial appelé JTAG câble. Grâce au câble JTAG, le programmeur peut effacer et écrire de nouvelles données dans la mémoire flash interne de l’appareil. Pour utiliser le programmeur, vous avez généralement besoin d’un logiciel du fabricant du matériel.

Création d’images de micrologiciel uniques

Par défaut, lorsque vous compilez une image de micrologiciel, cette image de micrologiciel ne contient aucune information d’identification sur le périphérique. C’est un appareil vierge.

Lorsqu’un périphérique vierge démarre pour la première fois, il devra être invité sur un réseau, via lequel il pourra se connecter à son serveur principal et obtenir son identité unique, ses informations d’identification de sécurité et d’autres informations. Ce processus prend environ 30 secondes pour chaque appareil. Lors de la programmation de nombreux appareils, ce processus peut donc prendre un temps considérable.

Entrer le thsq-device-flasher outil.

La thsq-device-flasher prend une image de micrologiciel vierge, la remplit avec une identité unique pour un périphérique, y compris les clés de sécurité nécessaires, et lie éventuellement le périphérique à un réseau donné, puis grave cette image de micrologiciel dans la mémoire flash de l’appareil.

L’outil lit le MAC l’adresse du matériel de l’appareil avant de flasher l’image du micrologiciel dans sa mémoire, afin qu’il puisse recréer la même identité pour un appareil, au cas où l’appareil aurait besoin d’être physiquement reprogrammé.

Avec thsq-device-flasher, il est facile de programmer manuellement un grand nombre d’appareils.

Regardons comment cela se fait.

Comment programmer des appareils avec thsq-device-flasher

La thsq-device-flasher l’outil nécessite NodeJS et le TI Logiciel Uniflasher à installer.

Installez le logiciel

L’étape 1 consiste à installer le logiciel:

Construire le binaire du micrologiciel

L’étape 2 consiste à créer le binaire de votre firmware. (Parlez à votre contact client Thingsquare au cas où vous auriez besoin d’aide, car la procédure de création peut être différente entre les différents projets client.)

Nous supposons que le binaire du firmware est appelé code.bin.

Obtenez un frontend ID et jeton API utilisateur

Pour pouvoir attribuer l’appareil à un produit et un compte d’utilisateur spécifiques, le thsq-device-flasher a besoin du frontend ID et un jeton API utilisateur pour l’utilisateur auquel les nouveaux appareils doivent être attribués.

Le frontend ID est la première chaîne de chiffres et de lettres dans l’URL du frontend de l’un des frontaux de votre produit.

Par exemple, le produit Thingsquare par défaut en tant que URL https://b72af87d-42d7-4f09-bf8c-b9f721a3e6ef.developer.thingsquare.com/. Le frontend ID est alors b72af87d-42d7-4f09-bf8c-b9f721a3e6ef.

L’utilisateur API le jeton est obtenu à partir du User dans l’interface par défaut de Thingsquare. Il se compose d’une chaîne de nombres hexadécimaux, tels que 423f4c2c9fd351f65359dd831833493f.

Le frontend ID et le jeton API utilisateur sont utilisés pour construire la ligne de commande. Dans ce cas, la ligne de commande serait:

thsq-device-flasher -f b72af87d-42d7-4f09-bf8c-b9f721a3e6ef 
-u 423f4c2c9fd351f65359dd831833493f -n device -e code.bin

La -n device flag donnera à chaque appareil un nom commençant par le mot device et le -e flag fera le nom pour avoir le périphérique EUI comme suffixe.

Programmer les appareils

Ouvrez l’invite de commande dans le répertoire avec code.bin

Reprogrammation des appareils sur le terrain

Une fois les appareils déployés, il est beaucoup plus rapide d’utiliser Over-The-Air (OTA) mises à jour pour les reprogrammer. Mais la méthode décrite dans cet article est utile comme première étape avant le premier déploiement.