AVRDUDE: Escribir bytes de EEPROM sin archivo

¿Es posible escribir bytes de EEPROM a través de AVRDUDE y un AVRISP mkII directamente desde la línea de comandos sin necesidad de leer un archivo EEPROM desde otro chip? Algo así como puede especificar los bytes de fusible directamente en la línea de comando.

Necesito poder cambiar un solo byte de la EEPROM, pero preferiría no meterme con un archivo.

No soy un usuario de AVRDUDE, así que no puedo probarlo, pero intente -U eeprom:w:0x55:mver si obtiene 0x55 en el primer byte de EEPROM.

Respuestas (2)

El comando de escritura avrdude (-U) conoce un modo 'inmediato' (consulte el manual ), que le permite especificar los bytes que se escribirán directamente.

La sintaxis es como

avrdude -U eeprom:w:0xff:m

Pero este modo no le permite especificar la dirección del byte que se escribirá, por lo que supongo que comenzará a escribir en la dirección cero. Esto funciona muy bien para los fusibles (donde en lugar de 'eeprom' usas 'hfuse', 'lfuse' o 'efuse'), pero no tanto para la memoria real.

Pero siempre puede crear un archivo hexadecimal (por ejemplo, registros hexadecimales de INTEL que contengan solo un byte con la dirección que necesita cambiar).

Bien... eso es lo que esperaba. Le daré una oportunidad. No necesito especificar la dirección ya que solo tengo un byte que necesito y siempre estará en la dirección 0.
También puede ver si puede (quizás con trucos de shell o /dev) hacer que lea una tubería como entrada. En el peor de los casos, es de código abierto para que pueda agregar las funciones que faltan ;-)
No puede hacerlo con compensaciones, los archivos son lo suficientemente pequeños como para poner cada byte en una línea de comando larga con copiar y pegar, o en un script bash.

Solución en Linux: escriba 0x10 en la dirección eeprom 0x50

avrdude -t << END
write eeprom 0x50 0x10
quit
END
Bonito: un modo de terminal y un documento aquí. Alguien como el cartel original podría preferir canalizar los datos desde un script que los genera e invoca avrdude, pero el modo avrdude es la parte importante.