defmt
Más información
- Creador
- Ferrous Systems (Knurling)
- Lanzamiento
- 2020
- Licencia
- MIT / Apache 2.0
- Código fuente
- github.com/knurling-rs/defmt
Registro de mensajes para Rust embebido en el que las cadenas de formato nunca salen del ordenador: el dispositivo solo envía un índice y datos en bruto.
El nombre viene de deferred formatting, formateo diferido. Un printf corriente en un microcontrolador cuesta flash por cada cadena y ciclos por convertir números en texto. defmt traslada las cadenas a una sección ELF que nunca se carga en el dispositivo y sustituye cada una por un entero. En el destino solo viajan ese índice y los argumentos en binario; el host busca la cadena en el archivo ELF y formatea allí.
El resultado son registros que ocupan una fracción del espacio y apenas alteran el código crítico en tiempo. El transporte suele ser RTT a través de probe-rs. La pega es que el registro es ilegible sin exactamente el ELF correcto: distribuye el binario equivocado y obtendrás números en lugar de mensajes. Lo desarrolló Ferrous Systems dentro del proyecto Knurling y Embassy lo usa a fondo.