AVR068 is right, and stk500.exe is wrong. (This reverts rev 1.19)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@611 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500v2.c (stk500v2_open): patch #5273: Emit error message
if user requests usb and no libusb support
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@608 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500v2.c: Add new functions for HVSP support.
* stk500v2.h: Add prototype for the stk500hvsp programmer.
* avrpart.h: Add fields to struct avrpart for new features.
* config_gram.y: Extend the configuration syntax for new
features required for HVSP support.
* lexer.l: (Ditto.)
* avrdude.conf.in: Add HVSP support for ATtiny13 and
ATtiny45 as an example.
* avrdude.1: Document stk500hvsp.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@595 81a1dc3b-b13d-400b-aceb-764788c761c2
Fix the non-paged write operations for old AVRs.
In avrdude.conf.in, use the new PP mode parameters; add PP mode
definitions for AT90S8515.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@591 81a1dc3b-b13d-400b-aceb-764788c761c2
as it is only used there (for the AVRISP mkII).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@590 81a1dc3b-b13d-400b-aceb-764788c761c2
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
Document ATmega256x support. Also document Solaris port defaults
in avrdude.texi.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@584 81a1dc3b-b13d-400b-aceb-764788c761c2
Which stops sck from being writtend needlessly
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@568 81a1dc3b-b13d-400b-aceb-764788c761c2
AVRISP mkII device. (Savannah patch #4789.)
* serial.h: Declare usb_serdev_frame device descriptor.
* stk500v2.c: Implementation of the AVRISP mkII handling.
* usb_libusb.c: Add USB handling for short-frame delimited
AVRISP mkII USB protocol; add distinction of different
devices in usbdev_open().
* jtagmkII.c: Tell usbdev_open() to search for the JTAG ICE mkII.
* usbdevs.h: (New file.)
* Makefile.am: Add usbdevs.h, as well as some other forgotten
files "make distcheck" complained about.
* avrdude.conf.in: Add more aliases for the AVRISP mkII.
* avrdude.1: Document how to use the AVRISP mkII.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@564 81a1dc3b-b13d-400b-aceb-764788c761c2
This fixes EEPROM access using the STK500V2 programmer, partially
undoing part of a previous general fixup commit. Choose the correct
read/write operations with the stk500v2 program function - the correct
one depends on the memory type. EEPROM is byte addressable so uses
read/write. FLASH is word addressable and so uses read_lo/write_lo.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@501 81a1dc3b-b13d-400b-aceb-764788c761c2
when passing unsigned char * when char * is in the prototype and vice
versa. Clean these up along with a few others.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@491 81a1dc3b-b13d-400b-aceb-764788c761c2
#13693, #13871, and #14212.
This provides bug fixes to the STK500V2 programmer type. From the
patch information:
- incorrect token used from avrdude.conf.in
- wrong command sent to programmer, hence no write to eeprom.
- programmer was said to start writing at 0x0000 and continue page
by page and was not repositionned when a gap was found in the
hex file, or when the hex file start address was not
0x0000. Hence the verify procedure was correct, not the write
procedure.
- speed up of flash write to skip empty pages (full of 0xFF) by
re-enabling a dedicated function for that task.
- stk500v2_paged_load() was not returning the number of byte read,
so empty hex files were generated when reading memory.
Submitted by: Bernard Fouch <bernard.fouche@kuantic.com>
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@490 81a1dc3b-b13d-400b-aceb-764788c761c2
thus it was falsely reporting that it failed when it was actually
working correctly. Fixed.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@482 81a1dc3b-b13d-400b-aceb-764788c761c2
yesterday's changes (i.e. before rev. 1.10 of ser_posix.c), that is,
exit(1) in case of a timeout. Previously, the upper layers didn't see
the timeout at all.
Quite possible that some of these drivers could handle a timeout more
intelligently though. At least for the rather sophisticated STK500v2
protocol, I think it should be possible to retry the request.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@460 81a1dc3b-b13d-400b-aceb-764788c761c2
Walthinsen, as well as JTAG ICE mkII support (by me).
Erik's submission has been cleaned up a little bit, mostly to add his
name and the current year to the copyright of the new file, remove
trailing white space before importing the files, and fix the minor
syntax errors in his avrdude.conf.in additions (missing semicolons).
The JTAG ICE mkII support should be considered alpha to beta quality
at this point. Few things are still to be done, like defering the
hfuse (OCDEN) tweaks until they are really required. Also, for
reasons not yet known, the target MCU doesn't start to run after
signing off from the ICE, it needs a power-cycle first (at least on my
STK500).
Note that for the JTAG ICE, I did change a few things in the internal
API. Notably I made the serial receive timeout configurable by the
backends via an exported variable (done in both the Posix and the
Win32 implementation), and I made the serial_recv() function return a
-1 instead of bailing out with exit(1) upon encountering a receive
timeout (currently only done in the Posix implementation). Both
measures together allow me to receive a datastreem from the ICE at 115
kbps on a somewhat lossy PCI multi-UART card that occasionally drops a
character. The JTAG ICE mkII protocol has enough of safety layers to
allow recovering from these events, but the previous code wasn't
prepared for any kind of recovery. The Win32 change for this still
has to be done, and the traditional drivers need to be converted to
exit(1) upon encountering a timeout (as they're now getting a -1
returned they didn't see before in that case).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@451 81a1dc3b-b13d-400b-aceb-764788c761c2