Logs e análise de falhas¶
Os logs fazem parte do produto; não são apenas um recurso temporário de depuração. Um sistema de logs bem planejado agiliza o bring-up da placa, o diagnóstico em campo e a investigação de falhas na fábrica.
Planeje a captura de logs antes do primeiro teste em campo. Se um dispositivo falhar, você só poderá recuperar os dados que o firmware já estiver preparado para salvar ou emitir.
Configuração mínima de logs¶
Registre os seguintes dados em cada compilação do firmware:
- Versão do firmware.
- Branch ou commit do SDK.
- Nome e revisão da placa.
- Motivo da inicialização.
- Versão do layout de partições.
- Resultados da inicialização dos principais subsistemas.
- Mensagens de falha ou de assert caso a inicialização não seja concluída.
Fluxo de análise de falhas¶
- Reproduza o problema em uma placa cuja configuração-base funcional tenha sido validada.
- Capture o log completo de inicialização, desde o reset.
- Salve o binário exato e os arquivos de símbolos correspondentes.
- Decodifique a saída de assert ou dump com as ferramentas da SiFli.
- Verifique o tamanho das pilhas, identifique quem é responsável por cada bloco de memória e examine os buffers de DMA e a manutenção de cache.
- Isole o problema usando como referência o exemplo do SDK mais próximo do cenário.
Níveis de log¶
Tabela: Níveis de log
| Fase | Logs recomendados |
|---|---|
| Bring-up da placa | Logs detalhados de periféricos e inicialização. |
| Desenvolvimento de funcionalidades | Logs de depuração por módulo relativos à funcionalidade em teste. |
| Ajuste do consumo de energia | Reduza os logs ao mínimo; a própria gravação de logs altera o consumo. |
| Versão candidata | Avisos, erros, versão, motivo da inicialização e verificações essenciais de integridade. |
| Versão de diagnóstico em campo | Logs direcionados ao subsistema suspeito. |
O que incluir em um bom relatório de falha¶
- O log completo, do reset até a falha.
- A identificação exata do binário.
- Os arquivos de símbolos ou uma compilação reproduzível.
- A informação sobre se a falha também ocorre em um exemplo do SDK sem modificações.
- A lista de periféricos conectados e a fonte de alimentação.
- A informação sobre se a falha persiste após apagar toda a Flash e gravar o firmware novamente.
Última atualização: