Foro de elhacker.net

Informática => Electrónica => Mensaje iniciado por: LiLou en 20 Marzo 2014, 09:16 am



Título: (PIC) Borrar EEPROM con bootloader
Publicado por: LiLou en 20 Marzo 2014, 09:16 am
Hola, antes que nada, a lo mejor es una obviedad para muchos lo que pido, pero es la 1a vez que programo para PICs (de echo, no soy ni ingeniero electrónico, sino informático).

Compilador: CCS
PIC18F4550

Bien, pues tengo el bootloader proporcionado por CCS (ex_usb_bootloader.c) corriendo y funcionando bien en el PIC. Lo que le quiero añadir ahora es que borre la EEPROM cada vez que se programa. El escenario es el siguiente: hay cargado un programa en el pic, tenemos una version nueva/modificada del mismo programa, y la queremos cargar de forma que sus variables en la EEPROM se reseteen a su valor inicial, y no cargar el valor que hubo la última vez, que es lo que hace ahora. Para solucionar eso se tendria que borrar la EEPROM antes de escribir el programa, correcto?

El software ya lo tengo. Leo un archivo .hex y se lo envio al firmware línea por línea.

He provado ésto, sin éxito :(

Código:
#define EEPROM_SIZE getenv("DATA_EEPROM")
#define EEPROM_START getenv("EEPROM_ADDRESS")
#define EEPROM_END (EEPROM_START + (EEPROM_SIZE-1))
Código:
void load_program(void){

       //...
 
       /* Borrar EEPROM */
       unsigned int32 addr_ee;
       for(addr_ee=EEPROM_START; addr_ee<EEPROM_END-EEPROM_ERASE_SIZE+1; addr_ee+=EEPROM_ERASE_SIZE)
          erase_program_eeprom(addr_ee);    
        
       //se escribe el programa al pic
}
 

Lo que se ha de hacer es simplemente eso, no? un bucle recorriendo la memoria eeprom y borrarla. Porque no me funciona? Hay alguna otra forma?


Título: Re: (PIC) Borrar EEPROM con bootloader
Publicado por: LiLou en 28 Marzo 2014, 09:14 am
Ya lo tengo. El que lo quiera, que me lo pida.

más de 500 visitas, 0 respuestas, wow...


Título: Re: (PIC) Borrar EEPROM con bootloader
Publicado por: gmola17 en 27 Septiembre 2014, 20:09 pm
Por favor podrías compartir el código y decirme en que parte del archivo ex_ubs_bootloader.c va colocado? ya que estoy plantado con el mismo problema, gracias.