Registros y análisis de fallos¶
Los registros forman parte del producto; no son solo una herramienta temporal de depuración. Un buen sistema de registro reduce el tiempo de puesta en marcha, el diagnóstico en campo y el análisis de fallos en fábrica.
Diseñe el sistema de registros antes de la primera prueba en campo. Si un dispositivo falla en campo, solo podrá recuperar los datos que el firmware estuviera preparado para guardar o emitir.
Configuración mínima de registros¶
Anote lo siguiente para cada compilación del firmware:
- Versión del firmware.
- Rama o commit del SDK.
- Nombre y revisión de la placa.
- Motivo del arranque.
- Versión de la distribución de particiones.
- Resultados de inicialización de los subsistemas principales.
- Mensajes de fallo o de assert si no se completa el arranque.
Flujo de análisis de fallos¶
- Reproduzca el problema en una placa con una configuración de referencia cuyo funcionamiento ya esté comprobado.
- Capture el registro completo desde el reinicio.
- Guarde el binario exacto y los archivos de símbolos.
- Decodifique la salida del assert o del volcado con las herramientas de SiFli.
- Revise los tamaños de pila, quién gestiona cada región de memoria, los búferes DMA y el mantenimiento de la caché.
- Aísle el problema usando como referencia el ejemplo del SDK más parecido.
Niveles de registro¶
Tabla: Niveles de registro
| Etapa | Registro recomendado |
|---|---|
| Puesta en marcha de la placa | Registros detallados de periféricos y arranque. |
| Desarrollo de funciones | Registros de depuración por módulo alrededor de la función que se prueba. |
| Ajuste del consumo energético | Registros mínimos, ya que el propio registro altera el consumo. |
| Versión candidata | Advertencias, errores, versión, motivo del arranque y comprobaciones de salud clave. |
| Versión de diagnóstico para incidencias en campo | Registros específicos del subsistema sospechoso. |
Contenido de un buen informe de fallo¶
- Registro completo desde el reinicio hasta el fallo.
- Identificación del binario exacto.
- Archivos de símbolos o una compilación reproducible.
- Indicación de si el fallo también ocurre con un ejemplo del SDK sin modificar.
- Periféricos conectados y fuente de alimentación.
- Indicación de si el fallo persiste tras borrar toda la Flash y volver a grabarla.
Última actualización: