Firmware-valideringsverktyg
Denna guide beskriver de interna verktyg som används för att validera ELRS Mobile-applikationens logik för firmwaremontering mot officiella “Golden”-binärfiler.
Ground Truth vs. Konfiguratorbinärfiler
När du utför valideringsrevisioner kan du märka att binärfiler genererade av ELRS Mobile perfekt matchar den officiella **ExpressLRS Web Flasher**, men avviker något från binärfiler byggda med den lokala **ExpressLRS Configurator (Python)**.
Detta är förväntat beteende. ESP32:s interna C++ JSON-parser ignorerar tomrum, vilket innebär att båda binärfilerna körs identiskt på hårdvara trots att de misslyckas med en strikt byte-för-byte SHA256-jämförelse på grund av minifieringsskillnader.
1. ExpressLRS Logic Validator (Dart)
Section titled “1. ExpressLRS Logic Validator (Dart)”Plats: firmware_testing/scripts/dart/logic_validator.dart
Logic Validator är ett högpresterande bit-nivå jämförelseverktyg. Det är utformat för att verifiera att ELRS Mobiles interna patchnings- och monteringslogik speglar den officiella ExpressLRS-logiken.
Nyckelfunktioner
Section titled “Nyckelfunktioner”- Bit-nivåanalys: Lokaliserar exakta bit-offset-fel inom avvikande bytes.
- Interaktivt val: Listar alla binärfiler som finns i
firmware_testing/binaries/. - Zero-Copy minneshantering: Optimerad för höghastighetsanalys av stora firmwarefiler.
Hur man använder
Section titled “Hur man använder”- Förbered binärfiler: Placera de genererade
.bin- eller.gz-filerna ifirmware_testing/binaries/. - Installation och körning:
Terminal window cd firmware_testing/scripts/dart/dart pub getdart run logic_validator.dart
2. Ground Truth Auditor (Python)
Section titled “2. Ground Truth Auditor (Python)”Plats: firmware_testing/scripts/python/audit_tool.py
Auditor är ett fristående, noll-beroende skript avsett för “Ground Truth”-verifiering. Det parsar det 2704-byte stora konfigurationsblocket som läggs till i slutet av varje ExpressLRS firmware-avbildning.
Det verifierar att den metadata som faktiskt flashas till enheten (Product Name, Lua Name, Hardware Layout och Options) är korrekt, oavsett layoutskillnader i den grundläggande firmwarekoden.
Hur man använder
Section titled “Hur man använder”- Kör direkt:
Terminal window python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]
3. Arbetsflöde för binär korsvalidering
Section titled “3. Arbetsflöde för binär korsvalidering”För att säkerställa att ELRS Mobile monterar firmware korrekt, bör utvecklare regelbundet utföra en korsvalideringsrevision mot en “Ground Truth”-binärfil som kompilerats på en PC.
Exportera binärfil från ELRS Mobile
Aktivera **Expert Mode** i Inställningar, använd sedan knappen **DOWNLOAD BINARY** i fliken Flasher efter att du har konfigurerat din målenhet och dina alternativ.
Generera PC Ground Truth
Bygg **exakt samma** målenhet och version med identiska alternativ med hjälp av den officiella ExpressLRS Configurator på din PC.
Kör revisionen
Placera båda binärfilerna i firmware_testing/binaries/ och kör skriptet audit_tool.py för att verifiera perfekt hårdvaru- och optionsparitet.