avrdude/NEWS

687 lines
20 KiB
Plaintext
Raw Normal View History

$Id$
Approximate change log for AVRDUDE by version.
(For more detailed changes, see the ChangeLog file.)
----------------------------------------------------------------------
Current:
* New devices supported:
- ATmega48P (patch #7629 add support for atmega48p)
- AT90PWM316 (bug #21797: AT90PWM316: New part description)
* New programmers supported:
- avrftdi
+ o-link (patch #7672 adding support for O-Link (FTDI based
JTAG) as progr ammer)
+ 4232h (patch #7715 FT4232H support)
- usbasp
+ nibobee (previously specified as '-c usbasp -P nibobee)
+ usbasp-clone (same as usbasp but ignores vendor and product
string, checks only vid/pid)
- ftdi_syncbb (new type for synchronous bitbanging with ft232r/ft245r)
+ ft245r (FT245R Synchronous BitBang, miso = D1, sck = D0, mosi
= D2, reset = D4)
+ ft232r (FT232R Synchronous BitBang, miso = RxD, sck = RTS,
mosi = TxD, reset = DTR)
+ bwmega (BitWizard ftdi_atmega builtin programmer, miso = DSR,
sck = DCD, mosi = CTS, reset = RI)
+ arduino-ft232r (Arduino: FT232R connected to ISP, miso = CTS
X3(1), sck = DSR X3(2), mosi = DCD X3(3), reset = RI X3(4))
+ diecimila (alias for arduino-ft232r)
* Bugfixes
- bug #34027: avrdude AT90S1200 Problem
- bug #34518: loading intel hex files > 64k using record-type 4
- patch #7667: Minor memory handling fixes
- patch #7680: Fixing timeout problem in ser_recv in ser_win32.c
- patch #7693: Fix config file atmel URLs (+ URLs in
avrdude.texi and avrpart.h)
- bug #21663: AT90PWM efuse incorrect, bug #30438: efuse bits
written as 0 on at90pwmxx parts
- bug #35261: avrftdi uses wrong interface in avrftdi_paged_(write|load)
- patch #7437 modifications to Bus Pirate module
- patch #7686 Updating buspirate ascii mode to current firmware,
use AUX as clock generator, and setting of serial receive
timeout
- bug #34768 Proposition: Change the name of the AVR32 devices
- patch #7718: Merge global data of avrftdi in a private data
structure
- bug #35208: avrdude 5.11 on freebsd 8.2-STABLE does not reset
Arduino Uno properly
- bug #34518: loading intel hex files > 64k using record-type 4
(Extended Linear Address Record)
- bug #34027: avrdude AT90S1200 Problem
- bug #30451: Accessing some Xmega memory sections gives not
supported error
* Keep track of input file contents
Memory segments are being tracked to remember whether they've
been actually read from a file. Only segments that came from a
file are being programmed into the device, or considered for
verification. This drastically improves handling speed for
sparse files (e.g. files that have a second bootloader segment),
and it ensures the device contents is actually compared for
everything mentioned in the file (even in case the file has
large 0xFF blocks).
* The EEPROM contents for the cyclecounter is only read when
explicitly requested by a -y or -Y option.
* The -U option now accepts ELF files as input files, and extracts
the appropriate section contents that matches the requested memory
region.
* Programmers and parts lists
They are now sorted at output with '-c ?'/'-p ?'. (patch #7671:
Sorting programmers and parts lists for console output)
Programmers and parts lists in documentation generated from lists
mentioned above. (patch #7687: Autogenerating programmers and
parts lists for docs)
Output list of programmer types with '-c ?type', add list to
documentation
* Configuration files now accepts parent parts/programmers, parts
starting with '.' (eg. .xmega) are not included in output parts
list and can be used as abstract parents
(bug #34302: Feature request : device configuration with parent classes)
(patch #7688: Implement parent programmers feature)
* Additional config files which are read after default can be
specified on command line using '-C +filename'
(patch #7699 Read additional config files)
* Programmer types in configuration file are no longer keywords but
specified as string.
So you need to change 'type = XYZ;' to 'type = "XYZ";' in own
config files. (internal: The parser does not need to know all
programmer types now, new programmers will update only the table
in pgm_type.c.)
* Internals:
- Restructuring and compacting programmer definition part of
grammar for config file.
- Cleanup of parser code, removing unused definitions/
functions. Using yylex_destroy if available.
- Fixed some more memory leaks, added cleanup code at program exit
(to minimize the number of non-freed memory blocks reported by
valgrind)
- Fixed some findings reported by cppcheck.
Version 5.11:
* New devices supported:
- ATmega88P/168P
- ATmega8U2/16U2/32U2
- ATtiny4313
* New programmers supported:
- TPI programming through bitbang programmers (both, serial
and parallel ones)
- FT2232 (and relatives) based programmers (MPSSE bitbang mode)
- Wiring environment (http://wiring.org.co/)
- butterfly-style bootloader of the Mikrokopter.de device
* Bugfixes
Version 5.10:
* Bugfixes
- bug #28660: Problem with loading intel hex rom files that exceed
0x10000 bytes
- see ChangeLog for further details
* New Features
- (JTAG ICE / AVR Dragon) apply external reset if JTAG ID could
not be read
Version 5.9:
* New devices supported:
- AVR32A0512 (JTAGMKII only)
- ATmega32U4
- ATtiny4
- ATtiny5
- ATtiny9
- ATtiny10
* New programmers supported:
- BusPirate
- Arduino
- JTAGICEmkII and AVR Dragon in PDI mode (ATxmega devices)
- STK600 and AVRISP mkII in TPI mode (ATtiny4/5/9/10)
* Bugfixes
- see ChangeLog and ChangeLog-2009 for details
Version 5.8:
* Bugfixes; most importantly, fix a serious memory corruption for
that JTAG ICE mkII and AVR Dragon in ISP/HVSP/PP mode.
Version 5.7:
* New devices supported:
- ATXMEGA64A1
- ATXMEGA192A1
- ATXMEGA256A1
- ATXMEGA64A3
- ATXMEGA128A3
- ATXMEGA192A3
- ATXMEGA256A3
- ATXMEGA256A3B
- ATXMEGA16A4
- ATXMEGA32A4
- ATXMEGA64A4
- ATXMEGA128A4
* Major Xmega fixes for the JTAG ICE mkII (patch #6825)
* Bugfixes.
Version 5.6:
* New devices supported:
- AT90USB82
- AT90USB162
- ATtiny88
- ATmega328P
- ATmega1284P
- ATmega128RFA1
- ATxmega128A1 rev D
- ATxmega128A1
- ATxmega256A3
* New programmers supported:
- AT89ISP cable (patch #6069)
- Arduino
* Add support for the -x option to pass extended parameters to the
programmer backend.
* Add support for JTAG daisy-chains, using the -x daisychain=
option.
Add initial support for the Atmel STK600, for "classic" AVRs (AT90, ATtiny, ATmega) in both, ISP and high-voltage programming modes. * Makefile.am: Add -lm. * avrdude.conf.in: Add stk600, stk600pp, and stk600hvsp. * config_gram.y: Add support for the stk600* keywords. * lexer.l: (Ditto.) * pgm.h: Add the "chan" parameter to set_varef(). * stk500.c: (Ditto.) * serial.h: Add USB endpoint support to struct filedescriptor. * stk500v2.c: Implement the meat of the STK600 support. * stk500v2.h: Add new prototypes for stk600*() programmers. * stk500v2_private.h: Add new constants used in the STK600. * term.c: Add AREF channel support. * usb_libusb.c: Automatically determine the correct write endpoint ID, the STK600 uses 0x83 while all other tools use 0x82. Propagate the EP to use through struct filedescriptor. * usbdevs.h: Add the STK600 USB product ID. * tools/get-stk600-cards.xsl: XSL transformation for targetboards.xml to obtain the list of socket and routing card IDs, to be used in stk500v2.c (for displaying the names). * tools/get-stk600-devices.xsl: XSL transformation for targetboards.xml to obtain the table of socket/routing cards and their respective AVR device support for doc/avrdude.texi. * avrdude.1: Document all the STK600 stuff. * doc/avrdude.texi: Ditto. Added a new chapter for Programmer Specific Information. Thanks to Eirik Rasmussen from Atmel Norway for his support in getting this code running within that short amount of time! git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@768 81a1dc3b-b13d-400b-aceb-764788c761c2
2008-03-14 13:00:08 +00:00
* Add support for the Atmel STK600 for "classic" AVRs (AT90, ATtiny,
ATmega), using either ISP or high-voltage programming modes.
* Add support for the -x devcode extended parameter to the avr910
programmer, to allow overriding the device code sent to the
programmer.
* Add support for the Crossbow MIB510 programmer (patch #6074, #6542).
* Add support to bootstrap with GNU autoconf 2.61, and automake 1.10,
respectively.
* Add support for ATxmega128A1 (including the revision D engineering
samples) for STK600 and AVRISPmkII tools using PDI
* The option combination -tF now enters terminal mode even if the
device initialization failed, so the user can modify programmer
parameters (like Vtarget).
* Add preliminary support for ATxmega128A1 for the JTAG ICE mkII using
JTAG.
* Add support for direct SPI transfers (bug #25156).
* Bugfixes.
Version 5.5:
* Add support for the USBtinyISP programmer (patch #6233)
* Add support for the C2N232I serial bitbang programmer (patch #6121)
* Bugfixes.
Version 5.4:
* New devices supported:
- AT90PWM2B/AT90PWM3B
* Bugfixes.
* Source code rearranged so that the functionality is now built
into a libavrdude.a library where main.c is currently the only
existing frontend.
* Implement ATmega256x support for butterfly/avr109.
Version 5.3.1:
* Add support for the AVR Dragon (all modes: ISP, JTAG, HVSP, PP,
debugWire).
* Add support for debugWire (both, JTAG ICE mkII, and AVR Dragon).
* Add support for the AVR Doper USB HID-class programmer.
* Bugfixes.
Version 5.2:
* New devices supported:
- AT90USB646/647/1286/1287
- ATmega2560/2561
- ATmega325/3250/645/6450
- ATtiny11 (HVSP only device)
- ATtiny261/461/861
* Fixed paged flash write operations for AT90PWMx devices
(error in datasheet).
* Add signature verification.
* Add high-voltage mode programming for the STK500 (both,
parallel, and high-voltage serial programming).
* Add support for using the JTAG ICE mkII as a generic ISP
programmer.
* Allow for specifying the ISP clock delay as an option for
bit-bang programming adapters.
* Add support for Thomas Fischl's USBasp low-cost USB-attached
programmer.
* The "stk500" programmer type is now implemented as a stub
that tries to probe for either "stk500v1" or "stk500v2".
* Many bugfixes.
Version 5.1:
* New devices supported:
- ATmega640/1280/1281
- ATtiny24/44/84
* JTAG mkII support now works with libusb-win32, too
* JTAG ICE mkI support has been added
* Solaris support has been added (including ecpp(7D) parallel-port
bit-bang mode)
Version 5.0:
* Support for JTAGICE MkII device
* Support for STK500 Version 2 Protocol
* New devices supported:
- AT90CAN128
- ATmega329x/649x
- ATmega164/324/644
- AT90PWM2/3,
- ATmega164/324/644
- ATmega329x/649x
- ATtiny25/45/85
* Support for serial bit-bang adapters: Ponyprog serial, UISP DASA,
UISP DASA3.
* DAPA programmer pinout supported
* New "safemode" feature where fuse bits are verified before exit
and if possible recovered if they have changed. This is intended
to protect against changed fuses which were not requested which is
reported to sometimes happen due to improper power supply or other
reasons.
* Various fixes for avr910 and butterfly programmers
* Full support for AVR109 boot loaders (butterfly)
* Adding -q -q suppresses most terminal output
Version 4.4.0:
* Native Win32 support: The windows build doesn't need Cygwin
anymore. Additionally, the delay timing on windows should be
more accurate now.
Contributed by Martin Thomas
* Add support for
- ATmega48, ATmega88 (contributed by Galen Seitz)
- ATtiny2313 (contributed by Bob Paddock)
- ATtiny13 (contributed by Pawel Moll)
* Added command to change the SCK of STK500-programmers. Now it
is possible to program uC with slow oscillator.
Contributed by Galen Seitz
* Baudrate for serial programmers (STK500 and AVR910) is
configurable in the config or at the command-line.
This way some more tweaked bootloaders and programmers can be used.
* Deprecated options have been removed.
Now the "-U" option must be used.
* MacOS X now supported by default.
Version 4.3.0:
* Added support for "Butterfly" evaluation board.
* Make cycle-count work with AVR910-programmers.
* Added "Troubleshooting"-Appendix to the manual.
* Add ATmega8515 support.
Contributed by: Matthias Wei<65>er <matthias@matwei.de>
* Add ATmega64 support.
Contributed by: Erik Christiansen <erik@dd.nec.com.au>
* Improved polling algorithm to speed up
programming of byte oriented parallel programmers.
Contributed by: Jan-Hinnerk Reichert <jan-hinnerk_reichert@hamburg.de>
* Add "fuse" and "lock" definitions for the AT90S8535.
* STK500 skips empty pages in paged write resulting in faster downloads
when there are empty blocks in between code (such as files that contain
application code and bootloader code).
Version 4.2.0:
* Add basic support for reading and writing fuses via SPI with avr910
programmers. Submitted by
Jan-Hinnerk Reichert <jan-hinnerk_reichert@hamburg.de>.
* Perform an auto erase before programming if the flash memory is
anywhere specified to be written by any of the -U requests. Old
style memory specification options (-f, -i, -I, -m, and -o) are
deprecated in favor of the new -U options. Auto erase is disabled
if any of the old-style options (specifically -i and -o) are
specified.
* Add new -U option for specifying programming operations - allows
multiple memory operations on a single command line.
* New progress reporting, looks nicer and is nicer to wrapper
environments such as emacs.
* Fix long-standing timing (verify) problems on Windows platform.
Submitted by Alex Shepherd <ashepherd@wave.co.nz>.
* Add new file format option - 'm' for "immediate mode." In this
case, the filename argument of the -o, -i, or -U options is
treated as the data for uploading - useful for specifying fuse
bits without having to create a single-byte file for uploading.
* Add support for displaying and setting the various STK500 operational
parameters (Vtarget, Varef, Master clock).
* Add 'picoweb' programming cable programmer.
Contributed by Rune Christensen <rune.christensen@adslhome.dk>.
* Add support for the sp12 programmer. Submitted by
Larry Barello <larryba@barrello.net>.
Version 4.1.0
* Add support for the Bascom SAMPLE programmer. Submitted by
Larry Barello <larryba@barrello.net>.
* Add support for avr910 type programmers (mcu00100, pavr avr910, etc).
* Support new devices: ATmega8535, ATtiny26
Version 4.0.0
* Now support Linux - added by "Theodore A. Roth" <troth@openavr.org>.
* Now support Windows - added by "Eric B. Weddington" <eric@ecentral.com>.
* Use 'configure' scripts to tailor the code to the system avrdude
is getting ready to be compiled on - added by "Theodore A. Roth"
<troth@openavr.org>.
* Motorola S-Record support - submitted by "Alexey V.Levdikov "
<tsar@kemford.com>.
* Support parallel programming on the STK500. Introduce 'pagel' and
'bs2' keywords to the config file for this purpose.
* Add support for the AT90S2343
* Add support for the ATmega169
* Add ability to specify system defaults within the config file
(default parallel port, default serial port).
* Specify the default programmer seperately from the programmer
definition. This is now done in the config file using the
'default_programmer' keyword.
* Support a per-user config file (~/.avrduderc) so that one can
override system wide defaults if desired.
* Follow the datasheet more closely for several parts in the "retry"
code when entering programming mode fails initially. Introduce
'retry_pulse' to the config file for this purpose.
Version 3.1.0
* This change represents a name change only. There is currently an
effort to port AVRPROG to other platforms including Linux and
Windows. Since Atmel's programmer binary that's included within
their AVR Studio software is named AVRPROG.EXE on the Windows OS,
there is the chance for confusion if we keep calling this program
AVRPROG as well. Up until now the name hasn't really been a
problem since there was no chance to confuse 'avrprog' on Unix
with Atmel's AVRPROG because Atmel's tools only run on Windows.
But with the Unix 'avrprog' possibly being ported to Windows, I
felt a name change was the best way to avoid problems.
So - from this point forward, my FreeBSD Unix program formerly
known as AVRPROG will subsequently be known as AVRDUDE (AVR
Downloader/UploaDEr).
This change also represents a time when the AVRDUDE sources move
from my own private repository to a public repository. This will
give other developers a chance to port AVRDUDE to other platforms
and extend its functionality to support additional programming
hardware, etc.
So goodbye AVRPROG, welcome AVRDUDE!
Version 3.0.0
* Rewrite parts of the code to make it easy to support other types
of programmers besides the directly connected parallel port
programmer (PPI).
* Add support for Atmel's STK500 programmer/development board. The
STK500's "paged mode" read/write is supported which makes this
programmer very fast. This is sorely needed on parts with large
memories such as the ATmega128. My 12K test program burns in
about 5 seconds, add another 5 to read it back out for
verification.
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 <rick@KIWI-Computer.com>.
* When in interactive terminal mode and dumping memory using the
'dump <memtype>' 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.
Version 2.1.3:
* Be backward compatible when reading 2-byte rewrite cycle counters
as written by avrprog version 2.1.0. Version 2.1.1 changed over
to a 4-byte counter, which caused avrprog versions 2.1.1 and 2.1.2
to report a negative count for parts that were initialized using
version 2.1.0. Thanks to Joerg Wunsch for noticing this.
Version 2.1.2:
* Add '-V' option to disable automatic verify check with uploading
data.
Version 2.1.1:
* Fix ATmega128 instruction sequences for reading fuse bits -
contributed by Joerg Wunsch.
* Modify erase-rewrite cycle counter code to use a 4 byte counter
instead of a two byte counter.
Version 2.1.0:
* Implement a per-part erase-rewrite cycle counter; requires the use
of two bytes of EEPROM memory.
Version 2.0.5:
* Support for ATtiny15 - contributed by Asher Hoskins
Version 2.0.4:
* Config file fixes for various parts.
Version 2.0.3:
* Work around problem programming fuse bits on parts like the
at90s4433 as described in the following errata:
http://www.atmel.com/atmel/acrobat/doc1280.pdf
* Add part definition for at90s4414, at90s4433.
* Add fuse/lock bit memory instructions for the at90s1200,
at90s2333, at90s4433 and at90s8515.
* Fix setting of programmer status LEDs under certain write-fail
conditions.
Version 2.0.2 :
* Fix writing to read-only memories such as the lock bits of the
AT90S2313.
* Copyright updates.
Version 2.0.1 :
* Use correct parallel port pins for VCC.
* Add programmer definition for Atmel's STK200.
* Add programmer definition for the AVR3 board.
* Fix address bit encoding for many parts.
* Allow the ``BUFF'' signal to be asserted by multiple pins of the
parallel port (like VCC) instead of just one. The STK200 appears
to need this feature.
Version 2.0.0 :
* Add support for programming fuse and lock bits if supported by the
part.
* Move instruction encoding into the config file. Now any part can
be supported as long as it uses the same basic serial programming
instruction format.
* Add part definitions for the ATMega163 and ATMega8 devices.
Version 1.4.3 :
* Mostly internal code cleanup.
Version 1.4.2 :
* Fixes for ATMega paged memory support.
* Support for ATMega16 device.
Version 1.4.1 :
* No functional changes, update to Copyrights only.
Version 1.4.0 :
* Add part definitions to the config file.
* Add initial support for Atmel's ATMega paged memory parts.
* Config file documentation added.
* Add a definition for the Dontronics DT006 programmer.
* Fix Intel Hex support for addresses larger than 64k.
Version 1.3.0 :
* Make programmer pin assignments configurable.
Version 1.2.2 :
* Initial public release.