* jtagII.c (jtagmkII_getsync): Instead of exit()ing from
deep within the tree when detecting the "need debugWIRE"
situation, properly pass this up as a return code.
* jtagII_private.h (JTAGII_GETSYNC_FAIL_GRACEFUL): New constant.
* stk500v2.c (stk500v2_jtagmkII_open): Don't tell anything
anymore when receiving a JTAGII_GETSYNC_FAIL_GRACEFUL from
jtagmkII_getsync(); silently give up (all necessary has been
said already).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@983 81a1dc3b-b13d-400b-aceb-764788c761c2
* usbasp.c (libusb_to_errno): Conditionalize some error codes
that apparently are lacking on MinGW.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@982 81a1dc3b-b13d-400b-aceb-764788c761c2
* ser_avrdoper.c: add <stdlib.h> so exit() is declared.
* usbtiny.c (usbtiny_open): provide an initializer to a
"may be used uninitialized" variable (since GCC could not
fully detect the logic behind).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@981 81a1dc3b-b13d-400b-aceb-764788c761c2
Wolfgang Moser, Ville Voipio, Hannes Weisbach
patch #7486: Patch to add FT2232C/D, FT2232H, FT4232H,
usbvid, usbpid, usbdev for USB support - Based on #7062
* avrftdi.c: New file.
* avrftdi.h: (Ditto.)
* configure.ac: Add check for libftdi.
* config_gram.y: Add AVRFTDI and per-programmer USB string
keywords.
* lexer.l: (Ditto.)
* avrdude.conf.in: Add avrftdi and 2232HIO programmers.
* pgm.h: Add USB parameters.
* Makefile.am: Add avrftdi.c and avrftdi.h.
* AUTHORS: Mention the new authors.
* avrdude.1: Document the changes.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@979 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #31779: Add support for addressing usbtinyisp with -P option
* usbtiny.c (usbtiny_open): Add logic to distinguish multiple USBtinyISP
programmers by their bus:device tuple.
* doc/avrdude.texi: Document the new functionality.
* avrdude.1: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@974 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #30268: Debugwire broken in avrdude-5.10
* jtagmkII.c (jtagmkII_initialize): only try setting up a JTAG chain when
the programmer is using JTAG.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@973 81a1dc3b-b13d-400b-aceb-764788c761c2
on the AVRISP-MKII
* stk500v2.c (stk500v2_program_enable): Rewrite the logic to
explain ISP activation failures.
* stk500v2_private.h: Fix the various STATUS_* constants;
AVR069 and AVR079 disagreed in their values, even though they
are apparently implementing the same logic behind.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@972 81a1dc3b-b13d-400b-aceb-764788c761c2
ATtiny88, ATmega168, ATmega168P, ATmega328P): Bump delay value for STK500v2
EEPROM write operation to 5, according to the respective XML files.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@970 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #31386: A "BUILD.svn" or similar "how to get started" doc would be helpful
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@967 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #32539: [Documentation][Patch] Man page is misleading re: Dragon & PDI
Update information about PDI connections on AVR Dragon
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@966 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #33345: File auto detection as binary doesn't open
file in binary mode on Windows
* fileio.c: Move the decision about opening files in
binary mode until before the fopen() call.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@964 81a1dc3b-b13d-400b-aceb-764788c761c2
timeout should depend on the selected clock speed, but changing the
API for that would require quite some effort throughout the entire
code base.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@954 81a1dc3b-b13d-400b-aceb-764788c761c2
Thanks to Vitaly Chernookiy for the patch.
* avrdude.conf.in: Add support for atmega324pa.
* ChangeLog-2010: New file, rotate ChangeLog for new year.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@953 81a1dc3b-b13d-400b-aceb-764788c761c2
programming stability, in particular with the STK600.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@952 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500v2.c (stk500v2_open): use same condition to refer to the AVR
Doper support as used in the definition in ser_avrdoper.c.
(Thanks to Christian Starkjohann for the analysis of the problem.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@947 81a1dc3b-b13d-400b-aceb-764788c761c2
doc/avrdude.texi (Troubleshooting): Mention the libusb 0.1 API
wrapper issue that is present in some Linux versions.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@944 81a1dc3b-b13d-400b-aceb-764788c761c2
* doc/avrdude.texi: Remove the recommendation for building
Win32 binaries under Cygwin; mention MinGW as an alternative
environment.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@942 81a1dc3b-b13d-400b-aceb-764788c761c2
* windows/Makefile.am (loaddrv_LDFLAGS): remove, the -mno-cygwin
flag is supposed to be set in CFLAGS by ./configure
* configure.ac: add a check for the presence of usleep(), add a
check whether the linker accepts -static
* avrdude.h: protect prototype for usleep by !defined(HAVE_USLEEP)
* ppwin.c (usleep): protect by !defined(HAVE_USLEEP)
* main.c: silence "array subscript of type char" compiler warnings
by casting all arguments to tolower()/toupper() and isspace()/
isdigit()/ispunct() to "int"
* butterfly.c: (Dito.)
* avr910.c: (Dito.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@936 81a1dc3b-b13d-400b-aceb-764788c761c2
* configure.ac: For Win32 environments, add a check whether the
compiler understands the -mno-cygwin option. If not, don't use
it but suggest using a different compiler.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@930 81a1dc3b-b13d-400b-aceb-764788c761c2
0x10000 bytes
* fileio.c: Revert the changes from r851 and r880, respectively.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@928 81a1dc3b-b13d-400b-aceb-764788c761c2
external reset applied (in case the target is in sleep mode or has
asserted the JTD bit).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@926 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #28611: -i delay not being applied to all serial port
bit banging state transitions
* serbb_win32.c: Apply ispdelay everywhere.
* serbb_posix.c: (Dito.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@917 81a1dc3b-b13d-400b-aceb-764788c761c2
Add ATtiny4/5/9/10 to avrdude.conf.in.
Document TPI and new device support.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@916 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #6927: Documentation patches
* doc/avrdude.texi: Fix various typos, and remove the last
remnants of obsoleted options -i/-o/-m/-f.
* avrdude.1: Merge typo fixes from avrdude.texi where
applicable.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@914 81a1dc3b-b13d-400b-aceb-764788c761c2
unallocated memory (in the atexit handler) in case of bailing out.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@910 81a1dc3b-b13d-400b-aceb-764788c761c2
jtagmkII_private.h, drop all #if 0 blocks, fold overly long lines,
move the *_initpgm() functions to the end of the file; while being
here, remove all trailing whitespace.
* jtagmkII_private.h: move AVR32 #defines here.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@909 81a1dc3b-b13d-400b-aceb-764788c761c2
* avrdude.conf.in: Correctly declare EEPROM page sizes for
all Xmega devices (0x20 instead of 0x100).
* avr.c: If a memory region has a page size declared, try
using the paged IO routines regardless of the target memory
name. Xmega EEPROM requires to be written in paged mode.
Correctly use a long (rather than unsigned long) variable to
evaluate the success status of the paged mode write attempt.
* stk500v2.c: Don't apply TIF space offsets twice (bug #27995:
AVRDUDE 5.8svn fails to program and read XMEGA); use
stk500v2_loadaddr() prior to paged mode (EEPROM and flash) writes,
otherwise programming of flash areas will fail; while being there,
check the return value of stk500v2_loadaddr() everywhere; use the
correct write/erase mode bits (same as AVR Studio does).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@907 81a1dc3b-b13d-400b-aceb-764788c761c2
subsequent programming operation will fail (for unknown reasons).
Actually, this was really only required for ancient AVRs, but doesn't
hurt on mega and tiny devices.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@904 81a1dc3b-b13d-400b-aceb-764788c761c2
* jtagmkII_private.h: Add CMND_XMEGA_ERASE as well as
the various XMEGA_ERASE_* definitions (from updated
appnote AVR067)
* jtagmkII.c (jtagmkII_chip_erase): Correctly implement
Xmega chip erase based on CMND_XMEGA_ERASE.
* jtagmkII.c (jtagmkII_pre_write): Remove, this turned out
to be just a chip erase.
* jtagmkII.c (jtagmkII_program_disable): Don't try reading
"hfuse" for Xmega parts; they don't have it.
* main.c (main): Re-enable auto-erase. It's been done
before (as "jtagmkII_pre_write") in jtagmkII_paged_write()
anyway. Xmega boot and application flash areas should be
handled separately in the future, so auto_erase can only
affect the area just being programmed.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@903 81a1dc3b-b13d-400b-aceb-764788c761c2
to a standard a reset command assume it was in binmode
and attempt to exit to text mode first.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@901 81a1dc3b-b13d-400b-aceb-764788c761c2
level.
* buspirate.c: Fix Win32 build warning: include <malloc.h> to
to get a declaration for alloca().
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@898 81a1dc3b-b13d-400b-aceb-764788c761c2
* usbasp.c: Change blocksize depending on sck frequency to avoid usb transmition timeouts.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@897 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500v2.c: Fix the "bad response to GO command:
RSP_ILLEGAL_EMULATOR_MODE" message. jtagmkII_close()
has been called with the wrong pgm->cookie. Wrap it
inside stk500v2_jtagmkII_close(), adjusting the cookie
data appropriately.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@895 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #7010: Win32 enhanced bitbang_delay
* bitbang.c (bitbang_calibrate_delay, bitbang_delay): On Win32,
use the high-resolution performance counter rather than the
uneducated delay loop guess if it is available on the target
hardware.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@894 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #27596: AT90s2333 is not correctly supported in avrdude.conf
* avrdude.conf.in (at90s2333): add various STK500v2 parameters.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@889 81a1dc3b-b13d-400b-aceb-764788c761c2
* par.c (par_close): use par_setmany() rather than par_setpin()
for PPI_AVR_BUFF.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@888 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500v2.c (stk500v2_dragon_isp_initpgm): Use
stk500v2_jtagmkII_setup/stk500v2_jtagmkII_rather than their
jtagII counterparts, to get the private data properly
initialized.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@887 81a1dc3b-b13d-400b-aceb-764788c761c2
by recent GCC versions).
* config_gram.y (parse_cmdbits): "brkt possibly used uninitialized"
(GCC errs here)
* jtagmkII.c (jtagmkII_reset32): "status possibly used uninitialized"
(I think GCC errs, too)
* buspirate.c: "pointers differ in signedness" (mismatch between
string processing and the use of "unsigned char" throughought the
AVRDUDE API)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@882 81a1dc3b-b13d-400b-aceb-764788c761c2
takes only 14 sec instead of almost 2 mins with the original
implementation.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@844 81a1dc3b-b13d-400b-aceb-764788c761c2
conditional compilation of usb_reset() introduced in r798.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@841 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #26527: bug in unicode conversion
* ser_avrdoper.c (convertUniToAscii): when encountering a UTF-16
character that cannot be converted to ASCII, increment the UTF-16
pointer anyway when proceeding.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@837 81a1dc3b-b13d-400b-aceb-764788c761c2
out of the chaining of both, the stk500v2 and the jtagmkII
programmers for some programming hardware (JTAG ICE mkII and AVR
Dragon running in ISP, HVSP or PP mode), where both programmers
have to maintain their private programmer data.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@834 81a1dc3b-b13d-400b-aceb-764788c761c2
* avrdude.conf.in (atmega163): fill in stk500v2 parameters, correct
some flash programming parameters as well.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@827 81a1dc3b-b13d-400b-aceb-764788c761c2
* ser_posix.c (ser_setspeed): Don't pass TCSAFLUSH to tcsetattr() as
it apparently fails to work on Solaris. After reading the
documentation again, it seems TCSAFLUSH and TCSANOW are indeed
mutually exclusive.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@826 81a1dc3b-b13d-400b-aceb-764788c761c2
* ser_win32.c (ser_open): prepend \\.\ to any COM port name, so it is
safe to be used for COM ports above 9.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@825 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500generic.c: Implement setup and teardown hooks, calling in turn
the respective hooks of the stk500v2 implementation.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@824 81a1dc3b-b13d-400b-aceb-764788c761c2
* main.c (usage): add a version number display to the default usage
message.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@823 81a1dc3b-b13d-400b-aceb-764788c761c2
support it
Do not call pgm->perform_osccal() unless it is != 0.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@822 81a1dc3b-b13d-400b-aceb-764788c761c2
* update.c (parse_op): correctly \0-terminate buf after filling
it, before it is potentially used as the source of a call to
strlen or strcpy.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@819 81a1dc3b-b13d-400b-aceb-764788c761c2
* fileio.c: Do not close the input/output stream when working on an
stdio stream.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@816 81a1dc3b-b13d-400b-aceb-764788c761c2
* avrdude.conf.in (ATxmega256A3): new device.
* stk500v2 (stk500v2_initialize): Enable the AVRISPmkII as a
PDI-capable device for ATxmega parts.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@809 81a1dc3b-b13d-400b-aceb-764788c761c2
it is not useful for anything else but the CLI frontend.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@806 81a1dc3b-b13d-400b-aceb-764788c761c2
* avr.h: Remove stray semicolon.
* configure.ac: Add check for predefined types uint_t and ulong_t.
* confwin.c: Include "avrdude.h" on top to avoid empty translation
unit warning.
* ppwin.c: (Ditto.)
* ser_win32.c: (Ditto.)
* serbb_win32.c: (Ditto.)
* jtagmkII.c (jtagmkII_recv): remove unreachable "return".
* stk500.c (stk500_initialize): (Ditto.)
* par.c: Test for both, __sun__ and __sun to see whether we are
being compiled on Solaris.
* ppi.c: (Ditto.)
* stk500v2.c: Implement the DEBUG and DEBUGRECV macros in a way
that is compatible with the ISO C99 standard.
* usbtiny.c: Only typedef uint_t and ulong_t if they have not
been found already by the autoconf checks.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@804 81a1dc3b-b13d-400b-aceb-764788c761c2
connect
* configure.ac: Add checks for gethostent() and socket().
While being here, remove some old cruft left from ancient days.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@803 81a1dc3b-b13d-400b-aceb-764788c761c2
by return -1. exit(1) from a library function is not going to make
many friends upstream (in particular the day someone uses that as
part of a GUI frontend).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@800 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #6749: make reading from the USBtinyISP programmer more robust
Add code to retry failed communication attempts.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@799 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #22271: usb_reset in usb_libusb.c not necessary in FreeBSD 6.x
* usb_libusb.c (usbdev_close): Do not call usb_reset() on FreeBSD.
It is not necessary there.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@798 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #24749: add support for '328p
* avrdude.conf.in (ATmega328P): new device support.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@796 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #6261: avrdude won't use dragon/debugwire to write a file
to eeprom
* jtagmkII.c (jtagmkII_paged_write): when in debugWire mode,
implement a paged write to EEPROM as a series of byte writes.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@792 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #6542: paged_load fails on the MIB510 programming board
* stk500.c: Add a workaround for the different signon sequence on
MIB510 programmers.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@791 81a1dc3b-b13d-400b-aceb-764788c761c2
* usbtiny.c (usbtiny_cmd): Replace sizeof() by a fixed constant
4 for the result array, because otherwise it would take the size
of a pointer which miserably fails on 64-bit machines.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@787 81a1dc3b-b13d-400b-aceb-764788c761c2
* ppiwin.c (ppi_open): If the port parameter passed from the
-p option is neither lpt1/2/3, try interpreting it directly as
a base address.
* avrdude.1: Document the change.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@786 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500v2.c (stk500v2_chip_erase,stk500hv_chip_erase): Return
the expected 0 for success rather than a protocol-dependant
number.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@785 81a1dc3b-b13d-400b-aceb-764788c761c2
Do not erase the chip if both, -e and -n options have
been specified.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@784 81a1dc3b-b13d-400b-aceb-764788c761c2
Uncomment the correct, and delete the wrong signature for
AT90USB646/647. Alas, the datasheet has never been corrected for
years.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@782 81a1dc3b-b13d-400b-aceb-764788c761c2
mkII (or AVR Dragon) in ISP mode. The wrong set of per-programmer
private data had been allocated (stk500v2 vs. jtagmkII) which was too
small to hold the actual data.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@781 81a1dc3b-b13d-400b-aceb-764788c761c2
for Xmega programming using the JTAG ICE mkII in JTAG mode.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@780 81a1dc3b-b13d-400b-aceb-764788c761c2
allow to continue with -F if it failed yet do not attempt to
perform anything on the device itself. That way, -tF could be
specified for programmers like the STK500/STK600 even without a
device connected, just in order to allow changing parameters on
the programmer itself.
* avrdude.1: Document that possible use of the -F option.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@779 81a1dc3b-b13d-400b-aceb-764788c761c2