Fix all bugs in the stk500pp implementation.

Eliminate pagebuf, and use stack-allocated buffers instead.  The
pagesize of all current AVRs is at most 256 only anyway, and this is
unlikely to change with the STK500v2 protocol.  The previous pagebuf
implementation suffered from some possible buffer overrun.

In stk500pp_write_page(), do always write full pages, rather than
attempting to write a partial last page which did not get written at
all.  Fill the remaining bytes with 0xff.

For (paged) write operations, correctly synthesize the mode byte.
This mode byte is very different from the ISP mode byte (sigh).

In stk500pp_read_byte(), when performing read operations on paged
memory, start reading at the previous page boundary rather than the
current address.


git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@589 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
joerg_wunsch
2006-07-17 21:25:59 +00:00
parent 4d465fe0ac
commit 9b2be8e3fb
2 changed files with 108 additions and 65 deletions

View File

@@ -1,3 +1,9 @@
2006-07-17 Joerg Wunsch <j@uriah.heep.sax.de>
* stk500v2.c: Fix all bugs in stk500pp. Eliminate pagebuf, and
use a stack-allocated buffer instead, as the pagesize can be at
most 256 for all current AVRs anyway.
2006-07-17 Joerg Wunsch <j@uriah.heep.sax.de>
* main.c: Use mem->desc in place of upd->memtype in more places to