Ver Mensaje Individual
  #35  
Antiguo 26-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Reputación: 19
MaMu Va por buen camino
Cita:
...se me ocurrio que en vez de un memo se ve mas elegante en un stinggrid. Pero que mi data no todo el tiempo va a ser del mismo peso que la memoria del chip que programare y tendre que rellenar ese espacio con 00h.
En realidad podés considerar que tu firmware "si" ocupa toda la memoria.
No se que uC estás programando, ya que de eso depende las características del mapa de memoria, forma de escritura, etc. Pero te pongo un ejemplo con un uC Pic. El programa puede considerarse que ocupa toda la memoria, puesto a que, donde finaliza la data real del firmware, dicho código escribe un dato de nulidad o conjunto vacío. En el caso de un Pic, (3FFFh=vacío). Por lo que borrar un chip, en el caso de un Pic, es lo mismo que decir, escribir 3FFFh a toda la matriz de memoria de programa, y 00h a cada direccion de la EEPROM.
Para resolver esto y que lo vuelques de forma elegante en un StringGrid, que me parece una idea exelente, y de hecho programas como el ICProg lo hacen asi, hay que analizar la situacion de la siguiente forma:

1) Determinar la estructura de la matriz del mapa de memoria del uC.
2) Determinar la estructura de la matriz que ocupa en memoria los datos.

Sabiendo estos 2, solo resta hacer la lógica

Pseudocódigo

Cita:
MiMatrizUC = La capacidad de mi uC
MiPrograma = Lo que ocupa mi programa
entonces
Sabiendo lo que ocupa mi programa
Mientras haya datos
rellenar grid con datos
si no hay datos, poner blanco
hasta que mi uC no tenga más capacidad.
Espero que esto pueda darme una idea más clara.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita