Diferencia en el tamaño de entrada y salida a avrdude

2

Cuando descargo un archivo .hex usando avrdude, veo una diferencia entre el tamaño de entrada y el de salida. Por ejemplo, el tamaño del archivo .hex es de 856 bytes, y lo que veo en el mensaje es '... avrdude: 298 bytes de flash escritos ...'

Tengo curiosidad por saber de dónde viene la diferencia (el archivo .hex es más grande). ¿Y la respuesta a cuál es el tamaño del código de la máquina (para el archivo .c del código fuente correspondiente) sería de 298 bytes?

    
pregunta Suba Thomas

2 respuestas

3

Como su nombre lo indica, un archivo hex contiene sus datos codificados en hexadecimal. Específicamente, en el formato hexadecimal Intel . Si abres el archivo en un editor de texto, verás que es una serie de líneas, cada una comienza con dos puntos, algunos datos de encabezado y un número fijo de dígitos hexadecimales.

Hexadecimal requiere dos caracteres para almacenar un byte, por lo que duplica su tamaño de archivo de inmediato. Agregue a eso la sobrecarga del formato (especificando las direcciones para escribir, longitudes, sumas de comprobación, etc.) y llegará al tamaño final del archivo.

Si AVRDude está reportando 298 bytes escritos, ese es el tamaño compilado de su programa.

    
respondido por el Nick Johnson
1

Para ampliar la respuesta de @Nick, aquí hay algunas preguntas relacionadas.

Número de bytes y tamaño de archivo (HEX)

¿Mi archivo HEX encajará en mi microcontrolador?

    
respondido por el Dzarda

Lea otras preguntas en las etiquetas