Harden firmware state and transfer handling
This commit is contained in:
@@ -52,7 +52,8 @@ sie nicht: `SAction.data` wird direkt als Slotindex `0..31` verwendet.
|
||||
|
||||
- kopiert 512 Byte aus NVM in `SMacroTable`
|
||||
- erkennt komplett geloeschten Flash (`0xFF`) als "noch nie beschrieben"
|
||||
- setzt dann eine leere Tabelle
|
||||
- prüft alle belegten Steps gegen den HID-Descriptor (`keycode <= 0x65`)
|
||||
- setzt bei gelöschtem oder ungültigem Inhalt eine leere Tabelle
|
||||
|
||||
Eine leere Tabelle ist also ein gueltiger Default-Zustand.
|
||||
|
||||
@@ -60,15 +61,18 @@ Eine leere Tabelle ist also ein gueltiger Default-Zustand.
|
||||
|
||||
`macro_config_save()`:
|
||||
|
||||
1. Tabelle in einen 4-Byte-aligned Puffer kopieren
|
||||
2. beide Rows loeschen
|
||||
3. 8 Pages zu je 64 Byte schreiben
|
||||
1. HID-Keycodes validieren
|
||||
2. Tabelle in einen 4-Byte-aligned Puffer kopieren
|
||||
3. beide Rows loeschen
|
||||
4. 8 Pages zu je 64 Byte schreiben
|
||||
|
||||
Rueckgabewert:
|
||||
|
||||
- `true` bei Erfolg
|
||||
- `false` bei NVM-Timeout
|
||||
|
||||
`static_assert` schützt die erwarteten Größen 2 und 512 Byte beim Build.
|
||||
|
||||
## Ausfuehrung
|
||||
|
||||
Beim Triggern eines Makros:
|
||||
|
||||
Reference in New Issue
Block a user