[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