This is the mail archive of the
ecos-devel@sourceware.org
mailing list for the eCos project.
RE: RedBoot built with gcc 3.4.4
On Mon, 12 Feb 2007, Kurt Siedenburg wrote:
I'd be interested in the answer to this question also - although our
situation is different:
Yes, looks like your situation is very different. You have a runtime
problem, whereas I have a compile / link-time one.
...and I am afraid I am not much nearer to the solution now than before. I
thought I identified the exact crash location with the help of debugging
printf's, but it looks like the crash / run behaviour differs also with
the amount and kind of debugging.
Now what I currently cannot understand is how one is supposed to handle
the .fixed_vectors section (ARM). This section contains some objects,
which are allocated in packages/hal/arm/arch/current/src/vectors.S
(although, I don't see any need for assembly, couldn't one just use an
appropriate __attribute__ and define those objects in a C file?) and then
should be described in the system linker script using the macro:
#define SECTION_fixed_vectors(_region_, _vma_, _lma_) \
.fixed_vectors _vma_ : _lma_ \
{ FORCE_OUTPUT; KEEP (*(.fixed_vectors)) } \
> _region_
in packages/hal/arm/arch/current/src/arm.ld. Now, those objects will be
written at run time, so, the section has to be in RAM. However, I do not
understand how this is achieved? As you dont have any loader, you have to
initialise it explicitely like the .bss or the .data, which I can
perfectly recognize in the above 2 files - as _start and _end addresses
are defined, and then the area between them is either cleared (for .bss)
or copied from the original image location (.data). But I don't understand
how this is supposed to work with .fixed_vectors.
Please, explain.
Thanks
Guennadi
---------------------------------
Guennadi Liakhovetski, Ph.D.
DSA Daten- und Systemtechnik GmbH
Pascalstr. 28
D-52076 Aachen
Germany