[En-Nut-Discussion] elf Symbols problem with WinAVR and/orAVRStudio

Chuck Hackett egroupscdh at up844.us
Wed Feb 1 18:58:58 CET 2006


> From: José Vallet
> 
> Hello Chuck.
> 
> Sorry to bother, but there's something that wakes up my curiosity.
> 
> Chuck Hackett wrote:
> > My Environment: Windows XP Ethernut 4.0.1 WinAVR 20060125 AVRStudio
> > 4.10.356 Ethernut2.1b target
> 
> According to:
> http://groups.google.com/group/osdeve_mirror_rtos_En-Nut-
> Discussion/browse_thread/thread/d9c6f54455c3dcc6/1f07f4af1692897b?lnk=st&q=win
> avr+20060119+released&rnum=1&hl=en#1f07f4af1692897b
> 
> Ethernut 4.0.1 should not compile with the latest release of Winavr,
> because they use avrlibc 1.4.something and the header structure has
> changed (respect to 1.2.something). How did you manage?

Hi José,

First, thanks, I didn't know that the en-nut discussion was mirrored on
groups.google.  It appears to be easier to search there.

I did get a compiler error when trying to compile Nut/OS that stated that
signal.h was obsolete.  Upon looking at the code (gcc.h) I temporarily commented
out the include of signal.h since it indicated that the functionality was in
interrupt.h just above it.

This removed the compile error but I'm not sure that there aren't side effects
that cause Nut/OS to fail but do not generate errors/warnings.

I can get Nut/OS and HTTPD to compile cleanly (Nut 4.0.1, WinAVR 20060125) and I
can load it into the simulator without symbols on Nut/OS - never was able to get
that to work but I tried (i.e.: opened the elf) Insight rather than AVRStudio
and it appeared to work but I'm not familiar with Insight so I didn't pursue it.
However, this made me think that the path problem is between GCC and AVRStudio.
To avoid this problem I gave up on trying to generate symbols for Nut/OS (to
learn more about Nut/OS and how everything works together) and went back to
symbols only on HTTPD which doesn't (appear) to cause a problem.

At this point I have not yet been able to get the sample HTTPD to execute on my
Ethernut 2.1b - I'm a very frustrated camper.  The most recent attempt results
in a load file that goes into an infinite loop before getting to the
initialization of HTTPD so it appears to be in the Nut/OS initialization.
Trying to track it down (in assembler and I'm not familiar with AVR assembler
yet) I see that it executes some very small (5-6 instruction) loops drops out
and executes a little code and then (at a point I don't know yet) jumps off into
uninitialized flash memory (contents all FFFF) and seems to execute FF's to the
end, wrap to 0 and reinitialize ...

Still waiting to get my first load module that works ...

Do you know what the most recent WinAVR and Nut/OS version combination that
results in a working Ethernut 2.1b load?  We need a cross reference of
compatible versions.  At this point I'd be glad to step back to ANY set of
versions that work.

In http://www.ethernut.de/pdf/enswm24e.pdf it indicates that " WinAVR-20030913
with GCC 3.3.1 is old, but produces reliable code." So I may give that a try.

Frustrating for someone just getting to know AVR, WinAVR, and Nut/OS.  I fear
I'll need a lot more 'context', i.e.: knowledge of where to find stuff and how
things knit together, before life will get better.

I'm afraid I can't yet help you much.  Do you use the Ethernut 2.1b?  Have you
gotten anything to work?

Cheers,

Chuck Hackett
"Good judgment comes from experience, experience comes from bad judgment"
7.5" gauge Union Pacific Northern (4-8-4) 844
http://www.whitetrout.net/Chuck






More information about the En-Nut-Discussion mailing list