defmt
Meer info
- Gemaakt door
- Ferrous Systems (Knurling)
- Jaar
- 2020
- Licentie
- MIT / Apache 2.0
- Broncode
- github.com/knurling-rs/defmt
Logging voor embedded Rust waarbij de opmaakstrings de laptop nooit verlaten: het apparaat stuurt alleen een index en ruwe data.
De naam staat voor deferred formatting, oftewel uitgestelde opmaak. Een gewone printf op een microcontroller kost flashgeheugen voor elke string en rekentijd voor het omzetten van getallen naar tekst. defmt verplaatst de strings naar een ELF-sectie die nooit op het apparaat wordt geladen en vervangt ze door een geheel getal. Over de lijn gaan alleen die index en de argumenten in binaire vorm; de host zoekt de string op in het ELF-bestand en doet daar de opmaak.
Het resultaat is logging die een fractie van de ruimte inneemt en tijdkritische code nauwelijks verstoort. Het transport verloopt meestal via RTT met probe-rs. Het addertje: zonder precies het juiste ELF-bestand is de log onleesbaar. Wie de verkeerde binary erbij pakt, krijgt cijfers in plaats van berichten. Ontwikkeld door Ferrous Systems binnen het Knurling-project en veel gebruikt door Embassy.