diff --git a/NEWS b/NEWS index 32453c2b..e6892b75 100644 --- a/NEWS +++ b/NEWS @@ -61,6 +61,7 @@ Current: - bug #42908: no external reset at JTAGICE3 - patch #8437: [PATCH] Serial-over-ethernet for Win32 - patch #8380: adds 500k 1M 2M baud to ser_posix.c + - bug #44717: avrdude creates empty flash dump * Internals: - Removing exit calls from config parser diff --git a/avrdude.1 b/avrdude.1 index a5e98ef5..682bb329 100644 --- a/avrdude.1 +++ b/avrdude.1 @@ -670,6 +670,12 @@ field is no longer optional since the filename part following the colon would otherwise be misinterpreted as .Ar format . .Pp +When reading any kind of flash memory area (including the various sub-areas +in Xmega devices), the resulting output file will be truncated to not contain +trailing 0xFF bytes which indicate unprogrammed (erased) memory. +Thus, if the entire memory is unprogrammed, this will result in an output +file that has no contents at all. +.Pp As an abbreviation, the form .Fl U Ar filename is equivalent to specifying diff --git a/doc/avrdude.texi b/doc/avrdude.texi index 383764f0..c04e562b 100644 --- a/doc/avrdude.texi +++ b/doc/avrdude.texi @@ -717,6 +717,12 @@ Note that if @var{filename} contains a colon, the @var{format} field is no longer optional since the filename part following the colon would otherwise be misinterpreted as @var{format}. +When reading any kind of flash memory area (including the various sub-areas +in Xmega devices), the resulting output file will be truncated to not contain +trailing 0xFF bytes which indicate unprogrammed (erased) memory. +Thus, if the entire memory is unprogrammed, this will result in an output +file that has no contents at all. + As an abbreviation, the form @code{-U} @var{filename} is equivalent to specifying @code{-U} @emph{flash:w:}@var{filename}@emph{:a}. diff --git a/update.c b/update.c index ecad1054..7bf5539a 100644 --- a/update.c +++ b/update.c @@ -243,6 +243,9 @@ int do_op(PROGRAMMER * pgm, struct avrpart * p, UPDATE * upd, enum updateflags f size = rc; if (quell_progress < 2) { + if (rc == 0) + avrdude_message(MSG_INFO, "%s: Flash is empty, resulting file has no contents.\n", + progname); avrdude_message(MSG_INFO, "%s: writing output file \"%s\"\n", progname, strcmp(upd->filename, "-")==0 ? "" : upd->filename);