avrdude-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avrdude-dev] ATMega2560 and stk500


From: Alan Horstmann
Subject: Re: [avrdude-dev] ATMega2560 and stk500
Date: Wed, 22 Jan 2014 10:37:07 +0000
User-agent: KMail/1.9.1

On Wednesday 22 January 2014 07:38, Joerg Wunsch wrote:
> > But the second patch 'stk500-256K-fix2.patch' in the second
> > post does apply to 6.0.1 for me - or are there more recent changes?:
>
> No, it applies fine.  It's just I missed it.
>
> Also, it works now.

That is good to know!

> I have done one change: static per-programmer data are discouraged.
> The idea behind is that the core of avrdude is built as a library, so
> other front-ends (namely, a GUI frontend) could eventually use them.
> As such, static data should rather be per-instance data for each
> programmer instance.  The "setup" and "teardown" methods are there to
> construct and destroy these per-instance data.  I have changed your
> implementation that way.

I had wondered whether the static data would be a problem - now it is clear 
how to handle that.

As an extra check, I took the patch from svn and applied to the original 
5.11.1 file here (one hunk by hand), re-compiled and ran through the 
bootloader program process as I was doing before, and can confirm it is 
successful/verifies correctly here and the ext-addr instructions can be seen 
correctly with the analyser.

Thanks for sorting this (and all the other avr work we rely on).

> As Alan Horstmann wrote:
> > I was using v5.11.1 since 6.0.1 doesn't build due to an extra
> > library requirement.
>
> Curious: what extra library requirement?
>
> libelf is not required albeit recommended so one could flash directly
> from the ELF files.

It is a version thing; configure finds it:
...
checking libelf.h usability... no
checking libelf.h presence... no
checking for libelf.h... no
checking libelf/libelf.h usability... yes
checking libelf/libelf.h presence... yes
checking for libelf/libelf.h... yes
...
but linking fails:
...
gcc -Wall -Wno-pointer-sign -g -O2   -o avrdude avrdude-main.o 
avrdude-term.o ./libavrdude.a  -lusb    -lelf -lpthread -lm -lreadline 
-lncurses
./libavrdude.a(libavrdude_a-fileio.o): In function `elf2b':
/home/alan/Programming/Arduino/Toolchain/CLI-build-tools/avr-dude/avrdude-6.0.1/fileio.c:957:
 
undefined reference to `elf_getshdrstrndx'
collect2: ld returned 1 exit status

From my notes at the time, I discovered that symbol exists only in 0.8.11, and 
is a rename of a similar one added in 0.8.7.  On the system here I have 
0.8.5.  There didn't seem to be a way of disabling the use of libelf via 
configure option?  Perhaps at least a min version should be enforced?  I 
would expect any version older than 0.8.11 to fail in this way.

Regards

Alan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]