Harden firmware state and transfer handling

This commit is contained in:
2026-07-24 09:49:21 +02:00
parent 50dbf8fbee
commit ce5db617a1
27 changed files with 558 additions and 231 deletions
+3 -5
View File
@@ -45,11 +45,9 @@ static void isr_enc0_b() { handle_encoder(0); }
- ISR-Wrapper führen nur Dekodierung und Queue-Push aus; sie rufen kein USB,
NVM, LED-Rendering oder `delay()` auf
Wichtig: Die Queue wird zusätzlich vom Matrixcallback im Loop beschrieben.
Ein Encoderinterrupt kann diesen Push unterbrechen. Die Implementierung ist
damit nicht streng Single-Producer und besitzt für diesen Fall aktuell keinen
Interruptschutz. Details:
[09_known_limitations.md](09_known_limitations.md).
Die Queue wird zusätzlich vom Matrixcallback im Loop beschrieben. Dieser
Loop-Push läuft in einer kurzen Critical Section; gleichpriorisierte
Encoder-ISRs unterbrechen sich auf dem Cortex-M0+ nicht gegenseitig.
## Initialisierung