¿Hay alguna forma de conservar los contenidos de EEPROM en AVR Atmega cuando se graba un nuevo firmware para flashear con avrdude?

5

Estoy terminando una aplicación que utilizará algunos parámetros no volátiles almacenados en un AVR Atmega644P EEPROM. Los valores iniciales de EEPROM se generaron utilizando el atributo EEMEM (como se describe en este tutorial ) y grabó en el AVR usando avrdude como esto:

avrdude -c usbasp -p atmega644p -u -U eeprom:w:application.eep

La aplicación ejecuta y recupera los valores correctos de EEPROM, pero si actualizo solo el firmware con avrdude -c usbasp -p atmega644p -u -U flash:w:application.hex , la EEPROM también parece borrarse, ya que los valores leídos son "todos unos" en lugar de los cargados anteriormente. Así que pregunto, ¿hay alguna forma de quemar el firmware para que parpadee pero evite que se borre la EEPROM (usando avrdude )?

    
pregunta Claudio

1 respuesta

8

Antes de volver a grabar cualquier Atmel AVR MCU, debes borrarlo. El procedimiento de borrado por defecto borra FLASH, EEPROM y los bits de bloqueo. Hay 2 formas de resolver su problema:

  1. Lea EEPROM, borre todo, programe todo, incluyendo su EEPROM respaldada.
  2. Establezca el bit de fusible EESAVE. En este caso, la EEPROM no se borrará durante el procedimiento de borrado. Pero tendrá que borrar este indicador algún día después si desea borrar y / o volver a actualizar EEPROM.
respondido por el x4mer

Lea otras preguntas en las etiquetas