Relacionar archivo bin (leído desde uC) a archivo de mapa

1

Tenemos un AT32UC3C1512 que presenta un fallo, parte del análisis que normalmente se realiza para aislar el fallo es realizar un intercambio ABA de componentes, hemos realizado el intercambio de varios componentes en la placa y el fallo sigue al microcontrolador.

El siguiente paso es realizar una verificación del firmware en la unidad de control, tenemos un archivo bin "maestro" que se programa a través de avr-gcc (en la planta de producción) y lo usamos para realizar una verificación, la verificación el microcontrolador falló, por lo que extrajimos el archivo de memoria flash del microcontrolador defectuoso y realizamos una comparación con HxD, hay 2 secciones que han dañado los datos.

Tengo el archivo .map del proyecto compilado. Me preguntaba si hay una forma de obtener la dirección de los datos corruptos del archivo BIN para compararlos con el archivo de mapa para ver en qué función o qué variables / secciones son las que generan el error.

¿Alguna idea? Gracias :)

    
pregunta user2982010

1 respuesta

0

Lee la imagen del MCU fallido (lee un par de veces si no estás seguro de que el chip esté bien). Luego, convierta los archivos .bin a Intel Hex (por ejemplo: srec_cat input.bin -Binary -Output output.hex -Intel --line_length=44 ) y use cualquier herramienta de diferencia de texto para detectar las diferencias. Las direcciones son obviamente visibles en los archivos Intel Hex. Luego, solo puede buscar en el archivo del mapa una dirección particular.

Desecharía el flash de los tableros sospechosos antes de realizar cualquier otro análisis (la protección del flash puede ser un problema: si lo usa, algunas MCU tienen una función de puerta trasera para facilitar eso, por ejemplo, NXP Kinetis) .

Si está experimentando daños por flash en el campo, sospecharía el firmware en primer lugar (especialmente si almacena algunos ajustes en MCU flash).

    
respondido por el filo

Lea otras preguntas en las etiquetas