# Bootloader-Testflash -- Ergebnis Der UF2-Bootloader (siehe [README.md](README.md)) wurde am 2026-08-05 auf einem echten VersaPad-v2-Board über Atmel-ICE/SWD getestet. Zusammenfassung der Ergebnisse steht im [Hardwaretest-Abschnitt der README](README.md#hardwaretest-2026-08-05). Dieses Dokument hält den Testablauf und die Antworten auf die ursprünglichen Prüffragen fest. **Sicherheitsrahmen, der eingehalten wurde:** Der Bootloader-Flash schreibt nur `0x0000..0x1FFF` (8 KiB). Die App-Firmware ab `0x2000` blieb dabei unangetastet. Über SWD war der Chip jederzeit neu beschreibbar; ein Brick war zu keinem Zeitpunkt möglich, solange der Atmel-ICE-Zugriff funktionierte. ## Voraussetzungen - Board per Atmel-ICE/SWD angeschlossen, wie beim normalen App-Firmware-Flashen (`pio run -e versapad --target upload`, siehe `../doc/08_development.md`) - PlatformIO Core (hier: PlatformIO-IDE-penv unter `%USERPROFILE%\.platformio\penv\Scripts\pio.exe`) ## Ablauf 1. `git checkout feature/usb-bootloader` 2. `cd bootloader && pio run -e versapad_bootloader` — Build sauber (89,9 % Flash, 7364/8192 Byte) 3. `pio run -e versapad_bootloader --target upload` — Flash + Verify über Atmel-ICE/SWD ## Ursprüngliche Prüffragen und Antworten - **Ist der Flash-Befehl ohne Fehler durchgelaufen?** Ja, `** Verified OK **` bei jedem Flash. - **Erscheint nach dem Bootloader-Einstieg ein Laufwerk `VERSABOOT`?** Ja. Getestete Board-Revision hat **keinen physischen Reset-/Boot-Taster** (Custom-PCB) — der ursprünglich geplante Doppel-Tap-Reset-Test war damit nicht durchführbar. Stattdessen wurde ein Hardware-Bootloader-Einstieg über eine gehaltene Cherry-MX-Taste ergänzt, siehe [README.md](README.md#hardware-bootloader-einstieg-ohne-reset-taster). Mit dieser Ergänzung: gehaltene Taste beim Power-On → `VERSABOOT`. - **Was steht in `INFO_UF2.TXT`?** ``` UF2 Bootloader versapad-1 SFHWRO Model: VersaPad v2 Board-ID: SAMD21G17D-VersaPad-v2 ``` - **Reagiert das Board normal als App-Firmware, wenn man es ohne gehaltene Taste ansteckt?** Ja, nach dem in der README beschriebenen DSB/ISB-Fix. Vor dem Fix: nein, siehe unten. - **Ungewöhnliches?** Ja, ein echter Bug: siehe [Hardwaretest-Abschnitt der README](README.md#hardwaretest-2026-08-05) für die Fehlersuche (Bootloader-eigener Sprung faultete zuverlässig, obwohl vom Debugger injizierte identische Register-/VTOR-Werte einwandfrei liefen) und den Fix (fehlende `__DSB()`/`__ISB()` vor dem `bx` in `check_start_application()`). - **USB-Identität korrekt, kein Fremdtreiber-Konflikt?** Nach PID-Wechsel von `0x0011` auf `0x0043` ja (siehe README, "Bekannte Einschränkungen" zum ursprünglichen Adafruit-PID-Konflikt). ## Noch NICHT getestet Firmware tatsächlich über das `VERSABOOT`-Laufwerk flashen. Der Firmware-Build der App erzeugt noch keine `.uf2`-Datei (nur `.bin`/`.elf` für den SWD-Weg) — das ist der nächste Schritt, siehe README, "Bekannte Einschränkungen".