*Problem in verbose output of previous commit. I hoped to
have all the verbose changes in a single commit, but that
won't happen...
*Main thing is fixed safemode to turn itself off when you can't
read the fuses anyway. I don't know what I was thinking when
I made it fail out of programmers that don't support fuse reading.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@733 81a1dc3b-b13d-400b-aceb-764788c761c2
include the documentation into the tarball even if the configure had been
run without the --enable-doc.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@726 81a1dc3b-b13d-400b-aceb-764788c761c2
own (duplicate) copy of it.
other files: Constify char pointers.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@725 81a1dc3b-b13d-400b-aceb-764788c761c2
list_parts() and list_programmers() functions into general list
iteration functions that call a caller-supplied callback for each
element. Implement list_parts() and list_programmers() as private
functions in main.c based on that approach.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@724 81a1dc3b-b13d-400b-aceb-764788c761c2
and link main.c against that library.
Add AC_PROG_RANLIB to configure.ac as we are building a library now.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@723 81a1dc3b-b13d-400b-aceb-764788c761c2
- Make all internal functions "static".
- Make sure each module's header and implementation file match.
- Remove all library-like functionality from main.c, so only
the actual frontend remains in main.c.
- Add C++ brackets to all header files.
That effectively leaves the various module C files as something like
an "avrdude library", with main.c being the currently only frontend
program for that library. In theory, it should be possible to write
different frontends using the same library backend functions though.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@722 81a1dc3b-b13d-400b-aceb-764788c761c2
declarations in each file by a central header file "avrdude.h".
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@721 81a1dc3b-b13d-400b-aceb-764788c761c2
and the presence of the header ddk/hidsdi.h. It now works
correctly under Cygwin and several flavours of MinGW.
* Makefile.am: Add new LIBHID pattern.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@719 81a1dc3b-b13d-400b-aceb-764788c761c2
command (which is ignored by current AVR109 bootloaders),
send the first reply from the list of supported device
codes back rather than using avrdude.conf's idea about
an AVR910 device code. Apparently, this solves disagreements
between different versions of at least the ATmega8 AVR910
device code.
Closes bug #18727: Writing flash failed
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@718 81a1dc3b-b13d-400b-aceb-764788c761c2
Change HVSP reset timing for ATtiny25/45/85 from
500 microseconds to 1 ms, matching the most recent Atmel XML
specs.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@717 81a1dc3b-b13d-400b-aceb-764788c761c2
* avrdude.conf.in (frank-stk200): Fix syntax error.
* ser_avrdoper.c: Make #ifdef for Win32/libhid
consistent with the initial check: use the HID driver
only iff found, otherwise use libusb.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@712 81a1dc3b-b13d-400b-aceb-764788c761c2
* avrdude.conf.in (frank-stk200): New programmer added.
Closes patch #5502: one other programmer
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@706 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #5507: Support for AVR-Doper USB programmer in HID mode
* configure.ac: Add hooks to detect the Win32 HID library,
as well as the existence of <ddk/hidsdi.h>.
* Makefile.am: Add new files.
* my_ddk_hidsdi.h: (New file.)
* ser_avrdoper.c: (New file.)
* serial.h: Add declaration for avrdoper_serdev.
* stk500v2.c: Add hook to divert to the AVR Doper code.
* avrdude.1: Document the AVR Doper support.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@704 81a1dc3b-b13d-400b-aceb-764788c761c2
usleep(1000000) that accidentally crept in in rev 1.19.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@702 81a1dc3b-b13d-400b-aceb-764788c761c2
value in case we had changed it.
Fixes bug #18262: JTAGMKI/JTAG1 Reset Bug
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@699 81a1dc3b-b13d-400b-aceb-764788c761c2
avr_write(), respectively, in case the paged_load()/paged_write()
methods succeeded, rather than only 0.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@696 81a1dc3b-b13d-400b-aceb-764788c761c2
fallback from each programmer's paged_load() or paged_write()
method, respectively. The return value needs to be checked for
being greater or equal than 0 rather equal to 0 in order to
assume the operation has been successful.
Fixes bug #18489: avrdude is too slow (20 byte/s)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@695 81a1dc3b-b13d-400b-aceb-764788c761c2
- declare a dummy "struct timezone" for some Win32 systems (MinGW)
- fix a few printf() argument types
- get rid off the prevailing "all filedescriptors are of type int"
attitude
The last item required a large sweep across the code, in order to
replace all "int fd"s by "struct filedescriptor *fd"s, and pass
pointers (as we cannot pass a union directly). In return, the
code is now supposed to be fully 64-bit safe, rather than relying
on a 64-bit pointer being converted to a (32-bit) int and back
to a pointer as we did previously.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@694 81a1dc3b-b13d-400b-aceb-764788c761c2
upon failure now that the upper layers won't fall back to the cmd()
method anymore in that case.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@691 81a1dc3b-b13d-400b-aceb-764788c761c2
(according to the XML files).
Add an XSL stylesheet to extract the dW
parameters from the XML files.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@690 81a1dc3b-b13d-400b-aceb-764788c761c2
imposed by debugWire itself, so effectively, only flash ROM can be
read and written.
Currently, the required changes to avrdude.conf.in are only present
for the ATtiny44.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@688 81a1dc3b-b13d-400b-aceb-764788c761c2
avr_read_byte_default() and avr_write_byte_default (resp.) by directly
calling the latter functions from within all programmers that don't
implement their own read_byte()/write_byte() methods. In turn, make the
read_byte() and write_byte() methods mandatory, and the cmd() method
(direct ISP command) optional instead (it's effectively mandatory for
any programmer using avr_read_byte_default()/avr_write_byte_default()
though). Remove all the pointless cmd() method stubs from those programmers
that don't need it.
Eliminate avr_read_byte() as it was now completely identical to
pgm->read_byte().
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@684 81a1dc3b-b13d-400b-aceb-764788c761c2
when closing the connection. They cause the activity LED on the ICE
to continue to flicker, and are not necessary anyway (the target
starts to run by itself when leaving programmng mode).
This is a partial fix for bug #18262: JTAGMKI/JTAG1 Reset Bug
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@683 81a1dc3b-b13d-400b-aceb-764788c761c2
that indicates whether the underlying communication can dynamically
change its speed or not. This flag is set for true serial
communication but clear for USB communication. Don't try to adjust
the speed when talking over a communication channel that doesn't
support it. (The Dragon does not even support the respective
parameter.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@676 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500.c (stk500_paged_write): Send the command and the data
payload within a single write().
patch #5025: Improve stk500.c robustness
Submitted by Matthias Ringwald:
* stk500.c (stk500_open): do not flush the serial line after
getting in sync with the programmer.
patch #5293: stk500.c: no drain after sync (-> allow BTnode
Bootloader to work on cygwin)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@670 81a1dc3b-b13d-400b-aceb-764788c761c2
autoconfiguration figured out we need it. The private implementation
has already been protected that way.
This should finally really fix bug #17884: another gettimeofday
conflict under win32/cygwin
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@669 81a1dc3b-b13d-400b-aceb-764788c761c2
Add the CoreFoundation and IOKit framework linker flags on MacOS X
when configuring for USB support.
patch #4685: Libusb on MacOS X: detection and additional includes
Thanks to Matthias Ringwald for testing the reworked patch.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@666 81a1dc3b-b13d-400b-aceb-764788c761c2
device codes, allow the user to override the device code
verification with the -F option.
* main.c: Make ovsigck a global variable.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@665 81a1dc3b-b13d-400b-aceb-764788c761c2
either firmware version 1 or 2.
* Makefile.am (avrdude_SOURCES): add the new files
stk500generic.c and stk500generic.h.
* avrdude.conf.in: Add the stk500generic programmer type, and
change the "stk500" entry to point to this programmer.
* config_gram.y: Add the stk500generic keyword.
* lexer.l: (Ditto.)
* stk500.c: Change the stk500v1 code to not call exit()
prematurely when failing to open the programmer, but instead
return an error status.
* stk500generic.c: (New file.) Stub programmer implementation.
Probe for either stk500v1 or stk500v2, and adjust the current pgm
appropriately.
* stk500generic.h: (New file.) Declare the public interface(s)
of stk500generic.c.
* doc/avrdude.texi: Document the changed behaviour of stk500.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@663 81a1dc3b-b13d-400b-aceb-764788c761c2
AT90S1200 and the AT90S8515, fuse bit handling via ISP, and lock bit
reading via ISP are not supported at all. For the AT90S4414 (small
brother of the AT90S8515), add the ability to write the lock bits, and
add a definition for the fuse bits (usable for HV programming). For
the AT90S2313, add the "fuse" memory range, so it's available for HV
programming.
Resolves bug #17796: avrdude will not program or verify lockbits with
Atmel STK protocol programmers
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@662 81a1dc3b-b13d-400b-aceb-764788c761c2
* usbasp.c: Check for USBasp with new as well as old VID/PID
pair, warn the user about upgrading the firmware in case an
old one has been found.
* usbasp.h: Add new VID/PID.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@661 81a1dc3b-b13d-400b-aceb-764788c761c2
. high fuse has 8 bits
. there is an extended fuse (just one bit)
. the calibration area is only 1 byte
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@660 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #4686: Add support for USBasp, a simple USB programmer
* usbasp.c: New file, implement the USBasp driver.
* usbasp.h: New file, interface declarations for USBasp.
* Makefile.am: Wire the new files into the build.
* avrdude.conf.in: Add the usbasp programmer entry.
* config_gram.y: Add the usbasp token.
* lexer.l: (Ditto.)
* avrdude.1: Document the USBasp programmer.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@656 81a1dc3b-b13d-400b-aceb-764788c761c2
and binary numbers.
Closes bug #16129: more output formats for fuse bits (avrdude
enhancement request)
* fileio.c: Implement fileio_num() and the itoa_simple() helper function.
* fileio.h: Add new file formats to FILEFMT.
* main.c: Parse the new file formats.
* avrdude.1: Document all this.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@654 81a1dc3b-b13d-400b-aceb-764788c761c2
requires the user to eventually restart AVRDUE from scratch then.
jtagmkII_reset() had to get a second parameter in order to record
the reset mode.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@647 81a1dc3b-b13d-400b-aceb-764788c761c2
still call the close method so we sign off correctly from the ICE:
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@646 81a1dc3b-b13d-400b-aceb-764788c761c2
Idea taken from patch #3172: Adds date and time of compile to usage
message
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@642 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #4372: Better synchronization for stk500
Sync three times, and drop any noise inbetween.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@641 81a1dc3b-b13d-400b-aceb-764788c761c2
the old AVR910 device codes; we've got signature verification
now so better rely on that.
* avr910.c: Revert the signature bytes returned, as it already
happened in butterfly.c. This closes bug #14998: Signature Bytes
read in wrong order (avr910 mode)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@638 81a1dc3b-b13d-400b-aceb-764788c761c2
<andyw@pobox.com>.
Implements patch #4635: Add support for terminal/console servers for
serial programmers
* ser_posix.c: Add net_open(), and divert to it for net:host:port.
* ser_win32.c: Recognize net:host:port, and bail out.
* avrdude.1: Document the net:host:port connection option.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@635 81a1dc3b-b13d-400b-aceb-764788c761c2
Wait for the device's response after sending an "E" command.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@634 81a1dc3b-b13d-400b-aceb-764788c761c2
DB9 connector, and fix some related bugs in serbb_posix.c.
Closes bug #16265: dasa2 does not work under posix
* avrdude.conf.in: New serbb pin numbering; added "siprog"
as an alias for "ponyser".
* serbb_posix.c: New pin numbering, fix some confusion.
* serbb_win32.c: New pin numbering.
The generic and Posix-related parts of these changes have
been contributed by Hanns-Konrad Unger
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@632 81a1dc3b-b13d-400b-aceb-764788c761c2
DB9 connector, and fix some related bugs in serbb_posix.c.
Closes bug #16265: dasa2 does not work under posix
* avrdude.conf.in: New serbb pin numbering; added "siprog"
as an alias for "ponyser".
* serbb_posix.c: New pin numbering, fix some confusion.
* serbb_win32.c: New pin numbering.
The generic and Posix-related parts of these changes have
been contributed by Hanns-Konrad Unger
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@631 81a1dc3b-b13d-400b-aceb-764788c761c2
possible to extend them for other programmers than PPI now (serbb,
stk500*).
* pgm.h: Keep the exit specs in an abstract form inside struct
programmer_t. (Should be moved out into some programmer-specific
structure.) Rename the getexitspecs() method into
parseexitspecs().
* main.c: Move the exit specs stuff out to the programmer
implementation.
* par.c: Implement the new exit spec handling. Everything is now
done using the generic abstraction layer.
Closes bug #16443: No disable Resetsignal at the end of
Programming Session
Obviates need for patch #5057: quick and dirty Hack to unset Reset
after Programming
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@629 81a1dc3b-b13d-400b-aceb-764788c761c2
via the patch tracking system.
patch #5096: Allow VCC and BUFF to be any pin in parallel mode
* config_gram.y: Release the restriction to PPIDATA pins.
* par.c: Rework the code to introduce a function par_setmany()
that builds on top of par_setpin(), and use that function for the
PPI_AVR_VCC and PPI_AVR_BUFF pin collections. This also abstracts
the polarity of these signals appropriately.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@628 81a1dc3b-b13d-400b-aceb-764788c761c2
Open the serial port with O_NONBLOCK, and save and restore the port
state before exiting.
patch #5008: Patch for (5.1) ser_posix.c for O_NONBLOCK open and
restoring serial port state on close
Closes bug #12622: avrdude hangs on macosx/darwin with PL-2303
usb-to-serial and Butterfly
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@627 81a1dc3b-b13d-400b-aceb-764788c761c2
definitions that are organized in pages.
* avr.c (avr_write_byte_default): Consider using the loadpage
instructions only if the respective memory is marked "paged".
Closes bug #17199: EEPROM fails verification on ATmega645 with
pony-stk200 hardware
Closes bug #16849: EEPROM write fails for AT90USB1287 with mode 0x41
Closes bug #15146: stk500v2_paged_write: loadpage instruction not
defined for part
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@622 81a1dc3b-b13d-400b-aceb-764788c761c2
option) as that is the programmer actually supported by
avrdude.conf.in.
Closes bug #15677: documentation mentions wrong programmer-id "avrispmk2"
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@621 81a1dc3b-b13d-400b-aceb-764788c761c2
AVR910 and AVR109. Change avr910_devcode of the ATtiny2313 to 0x5e
(ATtiny26).
Closes bug #16671: Tiny2313 avr910_devcode is bad
Closes bug #15826: avr910 device type for ATmega8 wrong
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@620 81a1dc3b-b13d-400b-aceb-764788c761c2
lock memory spaces of all devices where they have been missing. Add
the lock memory space to the ATmega48 section.
Closes bug #14920: tiny2313 fuses and AVRDUDE 5.0
Closes bug #15751: atmega48: no lock bits defined
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@619 81a1dc3b-b13d-400b-aceb-764788c761c2
* ppiwin.c (gettimeofday): Define gettimeofday() replacement
only if !defined(HAVE_GETTIMEOFDAY); use correct protype.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@616 81a1dc3b-b13d-400b-aceb-764788c761c2
always display the minor number as two digits. Examine the response
to the sign-on command to see which programmer hardware we are talking
to, and then restrict the STK500 topcard display to devices detected
as STK500.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@614 81a1dc3b-b13d-400b-aceb-764788c761c2
config_gram.h from the source distribution archive. These files are
supposed to be generated on the target system.
Closes bug #15536: avrdude-5.1 compilation fails on Gentoo/amd64
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@613 81a1dc3b-b13d-400b-aceb-764788c761c2
AVR068 is right, and stk500.exe is wrong. (This reverts rev 1.19)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@611 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #4539: Ability to control the bit clock (usleep) delay
for ppi interface
* bitbang.c: Implement bitbang_delay() and its calibration.
* bitbang.h: Declare bitbang_delay().
* main.c: Add the ispdelay option (-i).
* pgm.h (struct programmer_t): Add the ispdelay parameter.
* par.c: Add calls to bitbang_delay() when requested.
* serbb_posix.c: (Ditto.)
* serbb_win32.c: (Ditto.)
* avrdude.1: Document the new -i option.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@610 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@608 81a1dc3b-b13d-400b-aceb-764788c761c2
macro to add this library to, to prevent it from being
automatically linked to all binaries. This should fix the Win32
build of loaddrv.
* Makefile.am (avrdude_LDADD): add LIBUSB here.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@602 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@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@591 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@589 81a1dc3b-b13d-400b-aceb-764788c761c2
give the full name of the respective memory area, instead of
the (possibly abbreviated) name the user typed in the -U option.
(Previous attempt in rev 1.110 was obviously not complete.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@588 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@584 81a1dc3b-b13d-400b-aceb-764788c761c2
jtag2 and bitbang programmers are working, stk500v2
still needs to be done.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@581 81a1dc3b-b13d-400b-aceb-764788c761c2
Add the "atisp" programmer entry that makes use of negated signals.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@578 81a1dc3b-b13d-400b-aceb-764788c761c2
The 64 KB devices are actually guessed, as the datasheet and XML
files obviously contain a number of errors there.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@576 81a1dc3b-b13d-400b-aceb-764788c761c2
Contributed by Wim Lewis, add support for checking device
signatures in detail (patch #4924 and #4925)
* avrdude.conf.in: Add signatures
* avrpart.c: Set default signature
* avrpart.h: Variable for signature
* config_gram.y: More signature reading
* lexer.l: Define that signatures exist
* main.c: Read signatures and check them against hardware
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@573 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@564 81a1dc3b-b13d-400b-aceb-764788c761c2
ATmega48/88/168; the datasheet is a bit off here as well.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@560 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #4459: Fix for rpm package builds
* avrdude.spec.in: update the RPM spec file:
- Default to enable-doc=yes during configure.
- Move info file to docs package.
- Make building of docs package conditional. Basic
idea copied from avr-gcc.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@558 81a1dc3b-b13d-400b-aceb-764788c761c2
Fix bug #15013: Wrong use of PPICLAIM (kernel: ppdev0: claim the
port first)
* par.c: don't claim/release here (thus win_ppdev.h not needed
anymore)
* ppi.c: claim/release here.
* freebsd_ppi.h: ppi_claim/ppi_release now take an fd as parameter.
* solaris_ecpp.h: (Ditto.)
* linux_ppdev.h: (Ditto.) (Also add copyright.)
* win_ppdev.h: Not needed anymore, remove.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@557 81a1dc3b-b13d-400b-aceb-764788c761c2
*par.c: ppi_claim and ppi_release definitions now in a Windows header file
*ppi.c: Only included if you are building for Windows
*win_ppdev.h: Initial Commit, see par.c
CV: ----------------------------------------------------------------------
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@549 81a1dc3b-b13d-400b-aceb-764788c761c2
The very basic functionality (paged flash read/write, erase, terminal
mode reads, fuse writes) works fine. There are still the following
issues right now:
. paged EEPROM write (i.e. through -U eeprom:w:...) only works on an
erased EEPROM
. byte-access flash and EEPROM writes (i.e. in terminal mode) fail
. documentation needs to be updated still
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@547 81a1dc3b-b13d-400b-aceb-764788c761c2
-added support for ATMega168, patch #4532 thanks to Manfred Bartz
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@544 81a1dc3b-b13d-400b-aceb-764788c761c2
While Solaris' lex understands start conditions, they cannot be grouped,
so unfold the <strng> group.
All actions need braces, even if they only consist of a comment.
As the classic lex uses semi-static resource allocation, we need to bump
the resource limits quite a bit.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@541 81a1dc3b-b13d-400b-aceb-764788c761c2
two-step declaration, and first define token_p to be a token_t *,
and then define YYSTYPE to token_p. That works around a bug in
Solaris' yacc.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@540 81a1dc3b-b13d-400b-aceb-764788c761c2
* Makefile.am: distclean avrdude.conf.
* avrdude.conf.in: make the parallel-port programmers optional.
* bitbang.c: move the bitbang features out into PROGRAMMER.
* configure.ac: introduce --enable-parport, add Solaris.
* lexer.l: replace str by strng to work around problems in some
versions of flex.
* main.c: move getexitspecs into the respective programmer's
domain; replace rindex by the C-standard strrchr.
* par.c: make parallel port optional.
* par.h: everything but par_initpgm() is private now.
* pgm.h: add setping/getping/highpulsepin/getexitspecs.
* serbb_posix.c: generalize bitbang interface; replace
cfmakeraw() by explicit code.
* serbb_win32.c: generalize bitbang interface.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@539 81a1dc3b-b13d-400b-aceb-764788c761c2
wide tty output. Document a trick to find out about the serial
numbers of all JTAG ICEs attached to USB.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@534 81a1dc3b-b13d-400b-aceb-764788c761c2
. use the correct endpoint, depending on whether we are going to read
or write
. when opening the USB device, set the configuration according to the
config entry, and properly claim the interface
. when closing, release the interface again
With these changes, it works now with libusb-win32 as well.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@533 81a1dc3b-b13d-400b-aceb-764788c761c2
give the full name of the respective memory area, instead of
the (possibly abbreviated) name the user typed in the -U option.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@529 81a1dc3b-b13d-400b-aceb-764788c761c2
string. Actually evaluate that number as microseconds then, as the
documentation used to state already.
While being there, re-sort the -s option into alphabetical order.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@527 81a1dc3b-b13d-400b-aceb-764788c761c2
Document the addition of the latest safemode update in the change log.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@522 81a1dc3b-b13d-400b-aceb-764788c761c2
* add support for parts with just 'fuse' memory
* if any fuse memories are altered, reflect those changes in the
post-programming safemode check so that safemode no longer
complains about fuses which were intentionally altered; this
eliminates the need to completely disable safemode using -u in
order to program fuses.
* provide -s option which will not ask to restore fuses, it will
just do it
Submitted by: Colin O'Flynn <coflynn@newae.com>
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@519 81a1dc3b-b13d-400b-aceb-764788c761c2
will be available in the upcoming avrdude release.
His addition has been implemented by means of a generalized bit-bang
interface that contains the common part between serial and paralle
bit-bang devices, and specialed backends for the serial and parallel
port connections.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@515 81a1dc3b-b13d-400b-aceb-764788c761c2
was the whole programmer submission which was already added through
another request, but the former lacked the VCC definition. Pick it up
from this patch.
Submitted by: tmohr@s.netic.de
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@511 81a1dc3b-b13d-400b-aceb-764788c761c2
avr910 programmer.
Original Submission: The attached patch against avrdude 4.4.0 fixes
the following problems with paged writes in avr910.c:
- failure to re-set address after page writes;
- no polling or delay after page writes;
- no page writes when not using auto-increment;
- an extraneous page write when data ends on page boundary.
Submitted by: "Nic" <avrdude@schraudolph.org>
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@510 81a1dc3b-b13d-400b-aceb-764788c761c2
match the XML file.
This fixes
bug #7492: EEPROM writing fail on atmega103 with atavrisp
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@509 81a1dc3b-b13d-400b-aceb-764788c761c2
Do not rebuild the docs again if they are up-to-date. This avoids as
well that they are rebuilt during "make install".
Use mv -f instead of plain mv in order to install the docs into the
respective subdirs, in order to avoid silly questions for non-writable
destination files.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@508 81a1dc3b-b13d-400b-aceb-764788c761c2
one.
This closes
bug #11496: Memory bank calibration on atmega128 should have 4 bytes
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@506 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@501 81a1dc3b-b13d-400b-aceb-764788c761c2
doc/avrdude.texi: (Ditto.)
Closes bug #13501: <memtype> should be listed in the man page
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@500 81a1dc3b-b13d-400b-aceb-764788c761c2
gratitous API change in recent versions of texi2html where
the output directory has changed names.
Fix for:
bug #13026: The build fails with texi2html 1.76
bug #12715: make issues during install
patch #3091: commandline fix for latest version of texi2html
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@499 81a1dc3b-b13d-400b-aceb-764788c761c2
that way. ;-) For those who want the 19200 Bd one, add "jtag2slow".
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@495 81a1dc3b-b13d-400b-aceb-764788c761c2
to 'i' (input). Even though this bit should be ignored, it should not
be changed. The 'x' setting sets the bit to zero which programs it
and could cause undefined behaviour. Setting to 'i' enables it to be
rewritten to its old value.
A better solution might be to read the fuse byte, apply the new value
while leaving the 'x' bit alone, then writing the value back. The
current fix is a workaround which allows the developer to change the
bit.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@494 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@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@490 81a1dc3b-b13d-400b-aceb-764788c761c2
appears to have a complete XML description right now.
Document all the recently added new devices: AT90PWM2/3,
ATmega164/324/644, ATmega329x/649x, ATtiny25/45/85.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@489 81a1dc3b-b13d-400b-aceb-764788c761c2
all the details right now, so some of the parameters are guessed.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@487 81a1dc3b-b13d-400b-aceb-764788c761c2
changes to butterfly.c include:
. do not exit for unsupported devices but return -1 from the init function
instead; that way the -F option can be used to continue anyway
. honor the -b option as arbitrary bootloaders could be implemented with
any baud rate, not just the fixed 19200 Bd used by the butterfly
. implement functionality to read the fuse and lock bits, and write the
(boot) lock bits, resp.
. fix the signature byte order
The remaining files document the new functionality.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@486 81a1dc3b-b13d-400b-aceb-764788c761c2
main_exit: label to ensure the programmer is released correctly.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@483 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@482 81a1dc3b-b13d-400b-aceb-764788c761c2
to have problems sending a control message (returns an "I/O error").
At least try to recover gracefully in the bening case where the user
did not request a particular serial number, so we could continue
anyway without knowing it.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@481 81a1dc3b-b13d-400b-aceb-764788c761c2
usb_get_string_simple() as the latter is only found in recent enough
versions of libusb. That way, silently build without USB support
unless a recent version is available.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@480 81a1dc3b-b13d-400b-aceb-764788c761c2