¿Mi archivo HEX cabrá en mi microcontrolador?

5

Tengo un archivo hex con un tamaño de 42 kB. ¿Importa el tamaño al cargarlo en un microcontrolador? ¿Puedo cargar un archivo hexadecimal de 42 KB en un chip ATMEGA32 que tiene una memoria de 32 KB?

    
pregunta Sakti

3 respuestas

5

Puede usar avr-size para verificar el tamaño real de su programa:

[jpc@jpc sepack] avr-size sepack.elf 
   text    data     bss     dec     hex filename
   4396       6     277    4679    1247 sepack.elf
[jpc@jpc sepack] avr-size sepack.hex 
   text    data     bss     dec     hex filename
      0    4402       0    4402    1132 sepack.hex

Como puede ver, funciona mejor con los archivos .elf , ya que también puede mostrarle la cantidad de RAM que necesita ( data + bss ) y la cantidad de flash que se usará ( text + data ). Con el archivo .hex solo se muestra la segunda cifra (etiquetándola como data )

    
respondido por el jpc
9

El archivo hex generado a menudo es algo legible para los humanos e incluye datos de suma de comprobación, los cuales inflan el tamaño varias veces. Creo que los AVR usan el formato Intel HEX , mientras que otras cadenas de herramientas micro usan otros formatos; p.ej. Codewarrior para Freescale HCS08 proporciona registros S de Motorola , que es extremadamente similar.

Si abre el archivo .hex con un editor de texto (Bloc de notas), debería parecerse a esto, aunque mucho más:

:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988

donde se describen los diversos campos en el ejemplo en Wikipedia . Solo hay 16 bytes en cada una de esas líneas que denotan datos que se almacenarán en el micro, el resto es suma de control y datos de control que solo utiliza el programa de intermitentes.

    
respondido por el Nick T
3

Cada byte en un archivo hexadecimal toma dos dígitos hexadecimales, más unos pocos caracteres por registro. Su archivo hexadecimal debe caber en la memoria flash del dispositivo.

    
respondido por el Leon Heller

Lea otras preguntas en las etiquetas