Przejdź do głównej zawartości

Narzędzia walidacji oprogramowania układowego

Ten przewodnik szczegółowo opisuje wewnętrzne narzędzia używane do walidacji logiki montażu oprogramowania układowego aplikacji ELRS Mobile w oparciu o oficjalne „złote” binaria.

Prawda absolutna (Ground Truth) vs. Binaria Konfiguratora

Podczas przeprowadzania audytów walidacji, możesz zauważyć, że binaria generowane przez ELRS Mobile idealnie pasują do oficjalnego **ExpressLRS Web Flasher**, ale nieznacznie różnią się od binariów zbudowanych przy użyciu lokalnego **ExpressLRS Configurator (Python)**.

Jest to oczekiwane zachowanie. Wewnętrzny parser C++ JSON układu ESP32 ignoruje białe znaki, co oznacza, że oba binaria wykonują się identycznie na sprzęcie, pomimo niepowodzenia w ścisłym porównaniu SHA256 bajt po bajcie z powodu różnic w minifikacji.


Lokalizacja: firmware_testing/scripts/dart/logic_validator.dart

Walidator Logiki to wysokowydajne narzędzie do porównywania na poziomie bitów. Został zaprojektowany, aby weryfikować, czy wewnętrzna logika łatania i montażu ELRS Mobile odzwierciedla oficjalną logikę ExpressLRS.

  • Analiza na Poziomie Bitów: Wskazuje dokładne błędy przesunięcia bitów w rozbieżnych bajtach.
  • Interaktywny Wybór: Wyświetla wszystkie binaria znalezione w firmware_testing/binaries/.
  • Zarządzanie Pamięcią bez Kopiowania (Zero-Copy): Zoptymalizowane pod kątem szybkiej analizy dużych plików oprogramowania układowego.
  1. Przygotuj Binaria: Umieść wygenerowane pliki .bin lub .gz w firmware_testing/binaries/.
  2. Konfiguracja i Uruchomienie:
    Okno terminala
    cd firmware_testing/scripts/dart/
    dart pub get
    dart run logic_validator.dart

2. Audytor Prawdy Absolutnej (Ground Truth Auditor) (Python)

Dział zatytułowany „2. Audytor Prawdy Absolutnej (Ground Truth Auditor) (Python)”

Lokalizacja: firmware_testing/scripts/python/audit_tool.py

Audytor to samodzielny skrypt bez zależności, przeznaczony do weryfikacji „Prawdy Absolutnej” (Ground Truth). Analizuje 2704-bajtowy blok konfiguracji dołączony na końcu każdego obrazu oprogramowania układowego ExpressLRS.

Weryfikuje, czy metadane faktycznie wgrane do urządzenia (Nazwa Produktu, Nazwa Lua, Układ Sprzętowy i Opcje) są poprawne, niezależnie od różnic w układzie podstawowego kodu oprogramowania układowego.

  1. Uruchom bezpośrednio:
    Okno terminala
    python3 firmware_testing/scripts/python/audit_tool.py [file1] [file2]

Aby upewnić się, że ELRS Mobile poprawnie składa oprogramowanie układowe, deweloperzy powinni okresowo przeprowadzać audyt walidacji krzyżowej w stosunku do binarnego pliku „Ground Truth” skompilowanego na komputerze PC.

1

Eksportuj Plik Binarny z ELRS Mobile

Włącz **Tryb Eksperta** w Ustawieniach, a następnie użyj przycisku **POBIERZ BINARNY** w zakładce Flasher po skonfigurowaniu celu i opcji.

2

Generuj „Prawdę Absolutną” (Ground Truth) na PC

Zbuduj **dokładnie ten sam** cel i wersję z identycznymi opcjami, używając oficjalnego ExpressLRS Configurator na swoim komputerze PC.

3

Uruchom Audyt

Umieść oba binaria w firmware_testing/binaries/ i uruchom skrypt audit_tool.py, aby zweryfikować idealną zgodność sprzętu i opcji.