Autor Tema: Tamaño del programa en la memoria del micro  (Leído 1957 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Tamaño del programa en la memoria del micro
« en: 19 de Mayo de 2011, 07:47:08 »
Hola compañeros,

Resulta que por unos días le estoy poniendo los cuernos a microchip con atmel  :D y resulta tengo una duda respecto al tamaño que ocupa mi código en la memoria RAM y ROM del micro, esto se veia muy fácilmente con CCS ya que te lo mostraba cuando compilaba e incluso hay una opción que te lo muestra...actualmente estoy usando AVR Studio 5 y el hex ocupa 95Kb, pero creo recordar que no es el tamaño que ocupará en la memoria RAM/ROM del micro...

Un saludete y gracias amigos foreros.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Tamaño del programa en la memoria del micro
« Respuesta #1 en: 23 de Mayo de 2011, 16:58:10 »
Hola compañeros,

Resulta que por unos días le estoy poniendo los cuernos a microchip con atmel  :D y resulta tengo una duda respecto al tamaño que ocupa mi código en la memoria RAM y ROM del micro, esto se veia muy fácilmente con CCS ya que te lo mostraba cuando compilaba e incluso hay una opción que te lo muestra...actualmente estoy usando AVR Studio 5 y el hex ocupa 95Kb, pero creo recordar que no es el tamaño que ocupará en la memoria RAM/ROM del micro...

Un saludete y gracias amigos foreros.

El archivo .HEX es un archivo en formato intel que si lo abres es un simple texto ASCII donde cada línea indica la posición de memoria en la cual inicia y el resto es la información en si y un checksum.

Por ende esos 95KB que ocupa el archivo no tienen nada que ver con lo que ocupará en la memoria de programa, así que quedate tranquilo!!

Es dificil acertar al tamaño final sin conocer la arquitectura, pero haciendo un número rápido lo que ocupará será menos que eso dividido 3, es decir que ocupará unos 32kB o menos...

¿porqué? porque por línea tenes al menos 4 bytes que son de  address y luego 2 de checksum.  Con eso tenes 6 bytes que no se utilizan

Luego tenes que cada 2 bytes  en ascii se forma un byte de memoria de programa.

Lo que ocupa en RAM es dificil de saber ya que eso depende inherentemente del programa, tu código pueden ser de 10 líneas pero usas como buffer toda la memoria ram y ocuparias varios KB   ;-)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything