8051 con un problema de tamaño de archivo de Keil-C usando un procesador Megawin

0

0 voto negativo favorito

He escrito un programa usando Keil C para un MegaWin 8051 MPC82G516A. Cuando verifico el tamaño del archivo hexadecimal generado por Intel, tiene un tamaño de 8kb (veo el código en la ventana del código binario), pero cuando voy a programar el dispositivo usando la herramienta de Megawin, ¡aumenta el tamaño del código a alrededor de 29kb! ? ¿Alguien puede proporcionar la razón por la que podría estar haciendo esto?

Además, otra cosa que es extraña es el hecho de que parece estar escribiendo el código en la parte superior de la memoria del procesador y no al principio. Hay como 4 bytes al comienzo del código, pero el resto completo está al final de la memoria.

Por favor ayuda

Cameron.

    
pregunta user222811

1 respuesta

2

Un archivo hexadecimal puede omitir ubicaciones "no importa" al reiniciar en una nueva dirección (en cada línea, en general), por lo que el tamaño del archivo hexadecimal puede ser considerablemente más pequeño que los bytes binarios si hay un poco de contenido en la parte inferior del espacio de direcciones y más contenido en la parte superior. No significa que los archivos no sean efectivamente idénticos. La longitud de la línea también puede variar entre los archivos hexadecimales y seguir representando exactamente los mismos datos (ya que hay una sobrecarga por línea, las líneas más largas le darán un archivo más pequeño).

En cuanto a por qué Keil elegiría asignar memoria de programa (o constantes, etc.) comenzando en la parte inferior o superior, inferior o central de la memoria en el código emitido, no veo por qué le importaría. Es por eso que estás usando un lenguaje de alto nivel en primer lugar. Mientras el compilador sepa el rango de memoria correcto para el objetivo, todo debería estar bien.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas