diff --git a/CHANGELOG b/CHANGELOG index fa4065b5..6062f4f0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,25 @@ Approximate change log for AVRPROG by version ---------------------------------------------------------------------- +Version 2.1.5: + + * When getting ready to initiate communications with the AVR device, + first pull /RESET low for a short period of time before enabling + the buffer chip. This sequence allows the AVR to be reset before + the buffer is enabled to avoid a short period of time where the + AVR may be driving the programming lines at the same time the + programmer tries to. Of course, if a buffer is being used, then + the /RESET line from the programmer needs to be directly connected + to the AVR /RESET line and not via the buffer chip. + + Feature contributed by Rick C. Petty . + + * When in interactive terminal mode and dumping memory using the + 'dump ' command without any address information, and the + end of memory is reached, wrap back around to zero on the next + invocation. + + Version 2.1.4: * Fix -Y option. diff --git a/main.c b/main.c index 6eeddfe9..4e15d7fd 100644 --- a/main.c +++ b/main.c @@ -115,7 +115,7 @@ char ** modules[N_MODULES] = { &term_version }; -char * version = "2.1.4"; +char * version = "2.1.5"; char * main_version = "$Id$"; diff --git a/term.c b/term.c index 8263bcd8..9952fab7 100644 --- a/term.c +++ b/term.c @@ -256,11 +256,17 @@ int cmd_dump(int fd, struct avrpart * p, int argc, char * argv[]) maxsize = mem->size; - if (addr > maxsize) { - fprintf(stderr, - "%s (dump): address 0x%05lx is out of range for %s memory\n", - progname, addr, mem->desc); - return -1; + if (addr >= maxsize) { + if (argc == 2) { + /* wrap around */ + addr = 0; + } + else { + fprintf(stderr, + "%s (dump): address 0x%05lx is out of range for %s memory\n", + progname, addr, mem->desc); + return -1; + } } /* trim len if nessary to not read past the end of memory */