# UART-CLI: Herramienta esencial para depurar firmware embebido
UART-CLI te da acceso directo al estado del firmware a través de una interfaz serie. Puedes verificar estados de GPIO, versiones de software y configuraciones de hardware sin necesidad de equipos caros. A diferencia de JTAG o SWD, UART solo requiere adaptadores básicos como CP2102 y un terminal como Tera Term o PuTTY.
Para dispositivos remotos, la CLI sigue siendo imprescindible. Si tu pila inalámbrica (LoRa, CAN, Ethernet) falla tras un commit, los comandos UART identifican el problema en minutos, evitando horas de depuración con GDB.
Ventajas sobre la depuración tradicional
La CLI se integra en builds de depuración y se elimina de las versiones de producción con un solo flag en el Makefile (S/N). No ralentiza el firmware en producción ni afecta el rendimiento.
Pilas complejas como LTE/IP o Bluetooth se depuran con herramientas simples: Ethernet vía UART, GPIO con un multímetro. La CLI abre una "conversación" con el firmware: niveles de log dinámicos (INFO, DEBUG, PARANOIDE) por módulo evitan inundaciones de logs en firmwares grandes (320 kB, +80 componentes).
UART-CLI funciona sobre cualquier canal: CAN (ISO-TP), UDP, LoRa, con una utilidad de consola en el host y compresión opcional de tráfico.
Casos de uso clave
- MCUs multi-núcleo: Core0 vía JTAG/GDB, Core1/2 vía UARTs independientes (p. ej., SPC58NN84E7RMHBR).
- Detección de cuelgues: Sin eco al pulsar Enter indica un bloqueo sin LED de latido.
- Automatización: Ejecuta pruebas, registra números de serie, claves de encriptación.
- Respaldo de pines: Cuando pines JTAG/SWD están ocupados por relés/botones, UART queda libre (pines BOOT).
| Comparación de interfaces |
|----------------------------|
| Interfaz | Cables | Longitud cable | Coste | Resistencia ESD |
| UART-CLI | 4 (Rx/Tx/GND/VDD) | >1 m | Bajo | Alta |
| JTAG/SWD | 20 | <40 cm | Alto (7k RUB–5k EUR) | Baja |
+20 casos prácticos de uso de UART-CLI
- Volcado de estados GPIO con un comando.
- Consulta de versiones de firmware/hardware.
- Ejecución de pruebas de módulos por subcadena (p. ej., "i2c").
- Verificación DAC (onda sinusoidal a frecuencia), volcado FatFS.
- Diagnóstico de interrupciones.
- Carga de configs no volátiles (modulación transceptor).
- Simulación de protocolos/API para pruebas.
- Depuración sin símbolos (-g3) por límites NOR-Flash.
- Reinicio rápido vs. 2 minutos en Eclipse Terminate&Relaunch.
- Copiar-pegar en TeraTerm (imposible en configuradores GUI).
- Personal no IT usando guías PDF.
- Prueba de humo: Enter → cursor → firmware vivo.
La CLI reemplaza a JTAG en el 80% de casos, salvo cuelgues totales.
Conclusiones clave
- UART-CLI es una puerta minimalista al firmware, como un bus de microprocesador ISA.
- Depura pilas complejas (Ethernet) con herramientas simples (UART), de forma jerárquica.
- Modo dual: logs + comandos interactivos alivia carga bus/DMA.
- Escala a cualquier interfaz sin GUI.
- Ahorra tiempo/dinero frente a JTAG en producción.
— Editorial Team
Aún no hay comentarios.