AVRDUDE 6.2 released

Go To Last Post
12 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

  * Major changes compared to the previous version:

    - The stk500v2 implementation now uses its own higher-level
      command implementation for byte-wide access, rather than the
      historic SPI_MULTI command where all the low-level ISP
      implementation had to be assembled manually inside AVRDUDE.  In
      addition to the traditional STK500, this implementation is also
      used by all the more modern Atmel tools (AVRISPmkII, JTAGICEmkII
      in ISP mode, STK600 in ISP mode).

    - The -B option can be suffixed with "Hz", "kHz", or "MHz", in
      order to specify a bitclock frequency rather than period.

    - Print part id after signature (patch #8440 )

    - buspirate: Also support "cpufreq" extended parameter
      in binary mode (patch #8504 )

    - The "-P net:" syntax (forwarding of serial data over TCP) is now
      also implemented for Win32 systems.

    - Allow for arbitrary serial baudrates under Linux (OSX and *BSD
      could already handle it).

  * New devices supported:
    - AT90PWM216 (bug #42310: New part description for AT90PWM216)
    - ATmega32M1 (patch #7694 Add support for the atmega32m1)

  * New programmers supported:
    - ftdi_syncbb
      + uncompatino, ttl232r (FTDI TTL232R-5V with ICSP adapter)
        (patch #8529 2 more ftdi_syncbb devices)

  * Bugfixes
    - bug #45727: Wrong atmega8u2 flash parameters
    - bug #46020: Add TIAO TUMPA to the conf file.
    - bug #46021: Please add read in the memory lock section of ATtiny85
    - bug #42337 avrdude.conf updates for UM232H/CM232H
    - bug #42056: double free or corruption triggered at exit
    - bug #42158: Linux GPIO - Source Typo
    - bug #42516 spelling-error-in-binary
    - patch #8419 fix ftdi_syncbb hang with libftdi 1
    - bug #43002 usbasp debug output typo
    - patch #8511 Fix reset on FT245R
    - bug #40142 Floating point exception on Ubuntu 10.04
    - bug #22248: Read efuse error (partial fix)
    - bug #42267: jtag3isp fails to read lock and fuse bytes directly
                  after changing lock byte
    - bug #41561: AVRDUDE 6.0.1/USBasp doesn't write first bytes of
                  flash page
    - bug #43078: AVRDUDE crashes after sucessfully reading/writing eeprom
    - bug #43137: Writing and reading incorrect pages when using jtagicemkI
    - bug #40870: config nitpick: ATtiny25/45/85 have 1 calibration byte not 2
    - bug #42908: no external reset at JTAGICE3
    - patch #8437: [PATCH] Serial-over-ethernet for Win32
    - patch #8380: adds 500k 1M 2M baud to ser_posix.c
    - bug #44717: avrdude creates empty flash dump

  * Internals:
    - Removing exit calls from config parser
    - bug #42662 clang warnings under FreeBSD 10.x

 

Jörg Wunsch

Please don't send me PMs, use email if you want to approach me personally.

Last Edited: Mon. Nov 16, 2015 - 11:24 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It simply takes some time until all the mirrors have picked it up.

Jörg Wunsch

Please don't send me PMs, use email if you want to approach me personally.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Interesting.  That was the result of clicking on this link:

http://download.savannah.gnu.org/releases/avrdude/avrdude-6.2.tar.gz

... at:

http://download.savannah.gnu.org/releases/avrdude/

 

Why am I being silently redirected to a specific mirror?

 

BTW, it's there now.

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

joeymorin wrote:

Why am I being silently redirected to a specific mirror?

That's the way how the Savannah mirrors work.  Well hidden, there's also a URL available that does not redirect you, but for obvious reasons, they'd rather like the users to pick it up from a mirror.

Jörg Wunsch

Please don't send me PMs, use email if you want to approach me personally.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I grabbed and compiled a copy of v6.2 (using GCC 4.9.2 on 64 bit Kubuntu). It seems to work fine, but I noticed a few things:

 

  1. The config file has "fixed" the fuse read mask for the ATmega328p processor so that, for example, to have all three bits of the EXTENDED fuse high (i.e. not programmed - BOD disabled), one now has to write 0xFF instead of 0x07 to the part.
  2. The lock fuse READ mask for the Attiny25/45/85 has been finally fixed (horray!)
  3. The "safemode" readback of three fuses now only displays two fuses (hfuse and efuse). It does not display the lfuse value. Why?

 

Concerning item #1, people who use the Arduino IDE are going to have a seemingly inexplicable error when they try to burn the bootloader into a new or erased 328p and the ide sends out the old "0x05" value (from boards.txt) for the efuse and it does a safemode fail because NOW it expects "0xFD".

 

There may be more, but that's all I've found so far.

Gentlemen may prefer Blondes, but Real Men prefer Redheads!

Last Edited: Thu. Nov 19, 2015 - 01:37 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Regarding #1, I think there's still a bug report kept open to make all this consistent.

 

Regarding #3, I cannot reproduce this:

 

$ avrdude -c atmelice -p m256rfr2
avrdude: usbdev_open(): WARNING: failed to set configuration 1: could not set config 1: Device or resource busy

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude: Device signature = 0x1ea802 (probably m256rfr2)

avrdude: safemode: Fuses OK (E:FE, H:91, L:AF)

avrdude done.  Thank you.

 

If it doesn't work for you, please submit a bug report that mentions sufficient details.

Jörg Wunsch

Please don't send me PMs, use email if you want to approach me personally.

Last Edited: Thu. Nov 19, 2015 - 02:48 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

dl8dtl wrote:

Regarding #1, I think there's still a bug report kept open to make all this consistent.

 

Regarding #3, I cannot reproduce this:

 

$ avrdude -c atmelice -p m256rfr2
avrdude: usbdev_open(): WARNING: failed to set configuration 1: could not set config 1: Device or resource busy

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude: Device signature = 0x1ea802 (probably m256rfr2)

avrdude: safemode: Fuses OK (E:FE, H:91, L:AF)

avrdude done.  Thank you.

 

If it doesn't work for you, please submit a bug report that mentions sufficient details.

 

OK, concerning #3... here's the tail end of the output of AVRDUDE... using one "v" and two "q" options (i.e. -v -qq)... first version 6.1 (command line, then the tail end, my comments in red):

 

avrdude -p attiny85 -b 115200 -c avrispmkii -P usb -e -s -v -qq -U lfuse:w:0xFF:m -U hfuse:w:0xDF:m -U efuse:w:0xFF:m -U flash:w:ir_send.hex:i -U eeprom:w:ir_send.eep:i

    ........

    ........

         Programmer Type : STK500V2
         Description     : Atmel AVR ISP mkII
         Programmer Model: AVRISP mkII
         Hardware Version: 1
         Firmware Version Master : 1.23
         Vtarget         : 5.0 V
         SCK period      : 8.00 us
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as FF

 

Now, the same using version 6.2:

 

avrdude -p attiny85 -b 115200 -c avrispmkii -P usb -e -s -v -qq -U lfuse:w:0xFF:m -U hfuse:w:0xDF:m -U efuse:w:0xFF:m -U flash:w:ir_send.hex:i -U eeprom:w:ir_send.eep:i

    ........

    ........

         Programmer Type : STK500V2
         Description     : Atmel AVR ISP mkII
         Programmer Model: AVRISP mkII
         Hardware Version: 1
         Firmware Version Master : 1.23
         Vtarget         : 5.0 V
         SCK period      : 8.00 us
avrdude: safemode: hfuse reads as DF <--- lfuse missing
avrdude: safemode: efuse reads as FF
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as FF

 

The exact code that makes the avrdude command line within the Makefile:

 

## project specific
PART = attiny85
F_CPU = 16000000UL
TARGET = $(notdir $(CURDIR))
FORMAT = ihex
OPT = O3

## fuse settings
LFUSE  = 0xFF
HFUSE  = 0xDF
EFUSE  = 0xFF
UNLOCK = 0xFF
LOCK   = 0xFC
................

..... snip .....

................

AVRDUDE_CMD = avrdude <-- avrdude is in the executable path so only name needed
AVRDUDE_CMD += -p $(PART)
AVRDUDE_CMD += -b 115200
AVRDUDE_CMD += -c avrispmkii
##AVRDUDE_CMD += -B 16.0
AVRDUDE_CMD += -P usb
AVRDUDE_CMD += -e
AVRDUDE_CMD += -s
AVRDUDE_CMD += -v
AVRDUDE_CMD += -qq
##AVRDUDE_CMD += -U lock:w:$(UNLOCK):m
AVRDUDE_CMD += -U lfuse:w:$(LFUSE):m
AVRDUDE_CMD += -U hfuse:w:$(HFUSE):m
AVRDUDE_CMD += -U efuse:w:$(EFUSE):m
AVRDUDE_CMD += -U flash:w:$(TARGET).hex:i
AVRDUDE_CMD += -U eeprom:w:$(TARGET).eep:i
##AVRDUDE_CMD += -U lock:w:$(LOCK):m

 

 

Hope this helps.

Gentlemen may prefer Blondes, but Real Men prefer Redheads!

Last Edited: Thu. Nov 19, 2015 - 08:14 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

will it be available as windows binary soon? 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AngryCoder wrote:

will it be available as windows binary soon? 

 

Thanks for the reminder.  I just uploaded a MinGW32-built binary.

 

As for the safemode fuse printout, it's even funnier: I cannot get safemode to run at all using an AVRISPmkII here.

 

It's certainly a bug somehow (so feel free to file an official bug report on savannah), but it's not an important one. safemode's primary target have been those flakey bitbang adapters that were quite common ten years ago, where you could never be sure they were banging the bits the way you want. In contrast, the AVRISPmkII is rock solid.

Jörg Wunsch

Please don't send me PMs, use email if you want to approach me personally.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

dl8dtl wrote:

 In contrast, the AVRISPmkII is rock solid.

 

FYI, my programmer is a genuine Atmel MKII, not a clone (if that matters).

 

Currently (because of the uncertainty) I am using AVRDUDE version 6.1 with the new 6.2 config file, and I've updated all of my Makefiles and boards.txt file to accommodate the fact that the 328p fuse mask is now fixed.

 

Working great here (binary 6.1 and config 6.2).

Gentlemen may prefer Blondes, but Real Men prefer Redheads!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

dl8dtl wrote:

Regarding #1, I think there's still a bug report kept open to make all this consistent.

 

Regarding #3, I cannot reproduce this:

 

$ avrdude -c atmelice -p m256rfr2
avrdude: usbdev_open(): WARNING: failed to set configuration 1: could not set config 1: Device or resource busy

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude: Device signature = 0x1ea802 (probably m256rfr2)

avrdude: safemode: Fuses OK (E:FE, H:91, L:AF)

avrdude done.  Thank you.

 

If it doesn't work for you, please submit a bug report that mentions sufficient details.

 

Newsflash! I think the problem is in the config file (avrdude.conf).

 

First of all, I looked through the source code for main.c and avr.c (the stuff that calls safemode.c) and found nothing at all wrong.

 

I also was trying to use the compiled version 6.1 code with the version 6.2 config file and the problem shows itself! (that is, only hfuse and efuse show).

 

At first I thought all was OK because I could erase and program 328P chips, but just now I had a problem writing to a MEGA2560 and an ATTINY85. These two parts will not program, and they have the "show only 2 fuses" problem.

 

At this point, I am quite sure the problem is in the .conf file.

 

Hope this helps you somewhat......

Gentlemen may prefer Blondes, but Real Men prefer Redheads!