QUELLCODE / MD
BUILD_VALIDATION.md
pico/BUILD_VALIDATION.md
1# Firmware-Build: geprüfter Stand23> **Nur für privaten, experimentellen Gebrauch.** Bau, Download und Nutzung erfolgen auf eigene Verantwortung. **Niemals** an Unternehmensrechner, Produktivsysteme, Industrieanlagen oder sicherheitskritische Systeme anschließen oder diese bedienen. Experimenteller Referenzprototyp ohne freiwillige Funktions- oder Sicherheitsgarantie. Haftung und Gewährleistung werden nur im gesetzlich zulässigen Umfang ausgeschlossen; zwingende Ansprüche bleiben unberührt. [Vollständiger Nutzungshinweis und Haftungsausschluss](../docs/DISCLAIMER.md).456Am 30.09.2026 wurde die echte Firmware für **Pico 2 / RP2350, ARM Secure, Cortex-M33** vollständig kompiliert, gelinkt und als UF2 erzeugt. Dieser Crossbuild verwendet den offiziellen SDK und den echten TinyUSB-Treiber. Die nativen Simulationstests sind eine zusätzliche, getrennte Prüfung.78## Verwendete Versionen910| Bestandteil | Version / Commit |11| --- | --- |12| [Raspberry Pi Pico SDK](https://github.com/raspberrypi/pico-sdk/tree/2.1.1) | Tag `2.1.1`, Commit `bddd20f928ce76142793bef434d4f75f4af6e433` |13| TinyUSB im SDK | `0.18.0`, Commit `86ad6e56c1700e85f1c5678607a762cfe3aa2f47` |14| [Offizielle Arm GNU Toolchain](https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-darwin-arm64-arm-none-eabi.tar.xz) | `14.2.Rel1`, GCC `14.2.1 20241119`, Build `arm-14.52`, macOS arm64 |15| CMake | `3.31.6`, isoliert in temporärer Python-Umgebung |16| picotool für UF2 | `2.3.2-develop`, Commit `ba3df406c37774144a059b2bdae73ab52587a1d2`; automatisch vom SDK geladen und ohne libusb gebaut |17| Native Tests | Apple Clang `21.0.0.21000101`; Warnungen als Fehler, AddressSanitizer und UndefinedBehaviorSanitizer |1819Es wurden keine System- oder Homebrew-Werkzeuge installiert oder verändert. SDK, Toolchain, CMake, picotool und Build lagen ausschließlich unter `/tmp`. Der SDK lädt standardmäßig picotool aus dessen `develop`-Branch; für einen reproduzierbaren späteren Build ein kompatibles picotool mit dokumentierter Version vorab bereitstellen.2021## Ausgeführter Crossbuild2223Für die Veröffentlichung ist der lokale Arbeitsverzeichnispfad durch einen relativen Projektpfad ersetzt. Die folgenden Befehle werden im Verzeichnis `hardware-box` ausgeführt.2425```sh26/tmp/hb-cross-tools/bin/cmake -S pico -B /tmp/hb-pico-build-2.1.1 -DPICO_BOARD=pico2 -DPICO_SDK_PATH=/tmp/hb-pico-sdk-2.1.1 -DPICO_TOOLCHAIN_PATH=/tmp/arm-gnu-toolchain-14.2.rel1-darwin-arm64-arm-none-eabi -DPICOTOOL_FETCH_FROM_GIT_PATH=/tmp/hb-picotool-fetch27/tmp/hb-cross-tools/bin/cmake --build /tmp/hb-pico-build-2.1.1 --parallel 828```2930Ergebnis: `hardware_box_pico.elf`, `.bin`, `.hex` und `.uf2`. Der finale Build war erfolgreich mit `-Wall -Wextra -Werror`. Ein dabei entdeckter GCC-Hinweis zur Signedness der CRC-Schiebeoperation wurde durch einen expliziten `uint32_t`-Zwischenwert behoben; sämtliche nativen Tests bestanden anschließend erneut.3132Die ELF-Größenprüfung ergab 34.228 Bytes `text`, 0 Bytes `data` und 3.316 Bytes `bss`. Das ist keine Messung der maximalen Stack-Nutzung.3334UF2 SHA-256:3536```text3724d898071e9b092a0b80efd40e8add066dcddfdc3014c52f08463e8750308bcd38```3940`picotool info -a` erkannte die erzeugte Datei als `rp2350-arm-s`, Pico-Board `pico2`, SDK `2.1.1`, Programm `Hardware Box HID`, Version `1.0.0`, Startadresse `0x10000000` und ARM-Secure-Image ohne zusätzlich aktivierte Sicherheitsfunktionen.4142## Zusätzliche Prüfungen4344- Native CMake-Konfiguration, beide Targets und CTest: 2/2 Tests bestanden.45- `HB_SANITIZE=1` und der exakte SDK-TinyUSB-Pfad: Protokolltests, 20.000 begrenzte Fuzz-Inputs, Firmware-Sicherheits-Simulation und Deskriptor-Integration bestanden mit ASan/UBSan.46- Die USB-Deskriptorprüfung bestätigte drei HID-Interfaces, Boot-Protokolle für Tastatur und relative Maus, passende Endpoints, 8/5/5-Byte-Reports und Seriennummern.4748**Offen:** Kein Gerät wurde geflasht. USB-Enumeration, reale UART-Übertragung, GPIO-Verhalten, elektrotechnische Isolation, Not-Aus am aufgebauten Gerät, BIOS/UEFI sowie Windows/macOS/Linux wurden nicht physisch geprüft. Der erfolgreiche Crossbuild bestätigt die Kompilierbarkeit und UF2-Erzeugung, nicht diese Hardwareeigenschaften.