Outils de validation de Firmware
Ce guide détaille les outils internes utilisés pour valider la logique d’assemblage du firmware de l’application ELRS Mobile par rapport aux binaires “Golden” officiels.
Vérité Terrain vs. Binaires du Configurateur
Lors de l'exécution d'audits de validation, vous remarquerez peut-être que les binaires générés par ELRS Mobile correspondent parfaitement à l'**ExpressLRS Web Flasher** officiel, mais divergent légèrement des binaires construits à l'aide de l'**ExpressLRS Configurator (Python)** local.
Ceci est un comportement attendu. L'analyseur JSON C++ interne de l'ESP32 ignore les espaces blancs, ce qui signifie que les deux binaires s'exécutent de manière identique sur le matériel bien qu'ils échouent à une comparaison SHA256 stricte octet par octet en raison de différences de minification.
1. Validateur de logique ExpressLRS (Dart)
Section intitulée « 1. Validateur de logique ExpressLRS (Dart) »Emplacement : firmware_testing/scripts/dart/logic_validator.dart
Le Validateur de logique est un outil de comparaison de haut niveau de performance au niveau du bit. Il est conçu pour vérifier que la logique interne de patching et d’assemblage d’ELRS Mobile reflète la logique ExpressLRS officielle.
Fonctionnalités Clés
Section intitulée « Fonctionnalités Clés »- Analyse au niveau du bit : Identifie les échecs exacts d’offset de bit au sein des octets divergents.
- Sélection interactive : Liste tous les binaires trouvés dans
firmware_testing/binaries/. - Gestion de la mémoire sans copie : Optimisée pour l’analyse à haute vitesse des fichiers firmware volumineux.
Comment l’utiliser
Section intitulée « Comment l’utiliser »- Préparer les binaires : Placez les fichiers
.binou.gzgénérés dansfirmware_testing/binaries/. - Configuration et exécution :
Fenêtre de terminal cd firmware_testing/scripts/dart/dart pub getdart run logic_validator.dart
2. Auditeur de vérité terrain (Python)
Section intitulée « 2. Auditeur de vérité terrain (Python) »Emplacement : firmware_testing/scripts/python/audit_tool.py
L’Auditeur est un script autonome, sans dépendance, destiné à la vérification de la “Vérité Terrain”. Il analyse le bloc de configuration de 2704 octets ajouté à la fin de chaque image de firmware ExpressLRS.
Objectif
Section intitulée « Objectif »Il vérifie que les métadonnées réellement flashées sur l’appareil (Nom du produit, Nom Lua, Disposition matérielle et Options) sont correctes, quelles que soient les différences de disposition dans le code du firmware de base.
Comment l’utiliser
Section intitulée « Comment l’utiliser »- Exécuter directement :
Fenêtre de terminal python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]
3. Flux de travail de validation croisée binaire
Section intitulée « 3. Flux de travail de validation croisée binaire »Pour s’assurer qu’ELRS Mobile assemble correctement le firmware, les développeurs doivent effectuer périodiquement un audit de validation croisée par rapport à un binaire de “Vérité Terrain” compilé sur un PC.
Exporter le binaire depuis ELRS Mobile
Activez le **Mode Expert** dans les Paramètres, puis utilisez le bouton **TÉLÉCHARGER BINAIRE** dans l'onglet Flasher après avoir configuré votre cible et vos options.
Générer la vérité terrain PC
Construisez la **cible et la version exactement identiques** avec des options identiques en utilisant l'ExpressLRS Configurator officiel sur votre PC.
Exécuter l'audit
Placez les deux binaires dans firmware_testing/binaries/ et exécutez le script audit_tool.py pour vérifier la parité parfaite du matériel et des options.