Harden firmware state and transfer handling
This commit is contained in:
@@ -43,8 +43,9 @@ festgehalten werden.
|
||||
Firmware-Migration/Versionswechsel, Anpassung der externen GUI und
|
||||
Aktualisierung von `doc/06_nvm_config.md` sowie
|
||||
`doc/07_serial_protocol.md`.
|
||||
- Die Windows-GUI gehört nicht zu diesem Repository. Keine Kompatibilität mit
|
||||
ihr behaupten, wenn nur die Firmware geändert oder geprüft wurde.
|
||||
- Die Windows-GUI liegt im benachbarten, eigenständigen Repository
|
||||
`../VersaGUI`. Bei gemeinsamen Verträgen beide Repositories ändern, prüfen
|
||||
und jeweils bedarfsgerecht committen. `DelphiGUI` wird nicht gepflegt.
|
||||
- Die NVM-Adressen liegen am oberen Ende des 128-KiB-Flash. Vor Änderungen an
|
||||
Linker-Skripten, Boardgrößen oder NVM-Layouts immer
|
||||
`doc/09_known_limitations.md` lesen.
|
||||
@@ -52,8 +53,9 @@ festgehalten werden.
|
||||
großen Stackpuffer und keine Float-Arithmetik in Loop-/ISR-Pfaden einführen.
|
||||
- ISR-Code muss kurz und nicht blockierend bleiben. Niemals USB, NVM,
|
||||
WS2812-Ausgabe oder `delay()` aus einer ISR aufrufen.
|
||||
- Das feste CDC-Protokoll besteht aus 8-Byte-Paketen. Es besitzt aktuell weder
|
||||
Framing noch Sequenz-/Vollständigkeitsprüfung.
|
||||
- Das feste CDC-Protokoll besteht aus 8-Byte-Paketen. Blob-Transfers prüfen
|
||||
Chunkzahl, eindeutige Indizes und Vollständigkeit; paketweises Framing und
|
||||
eine Makro-CRC gibt es weiterhin nicht.
|
||||
|
||||
## Änderungsleitfaden
|
||||
|
||||
@@ -81,9 +83,16 @@ git diff --check
|
||||
```
|
||||
|
||||
Für Hardware-, USB-, NVM- oder Timingänderungen zusätzlich einen passenden
|
||||
Gerätetest beschreiben. Es gibt derzeit keine automatisierten Unit- oder
|
||||
Integrationstests. Ein erfolgreicher Build beweist daher weder elektrische
|
||||
Funktion noch GUI-Kompatibilität.
|
||||
Gerätetest beschreiben. Für die Firmware gibt es derzeit keine automatisierten
|
||||
Unit- oder Integrationstests. Ein erfolgreicher Build beweist daher weder
|
||||
elektrische Funktion noch GUI-Kompatibilität.
|
||||
|
||||
Bei Änderungen an Config-, Makro- oder CDC-Verträgen zusätzlich:
|
||||
|
||||
```bash
|
||||
dotnet build ../VersaGUI/src/VersaGUI.csproj --no-restore
|
||||
dotnet run --project ../VersaGUI/tests/VersaGUI.ContractTests/VersaGUI.ContractTests.csproj
|
||||
```
|
||||
|
||||
Vor Abschluss prüfen:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user