This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: Redboot :: __startup_stack
- From: "Harsha D" <harshad at sanyo dot co dot in>
- To: "Andrew Lunn" <andrew at lunn dot ch>
- Cc: <ecos-discuss at sources dot redhat dot com>
- Date: Tue, 5 Jul 2005 09:54:28 +0530
- Subject: RE: [ECOS] Redboot :: __startup_stack
Hi
As i said earlier i was able to run redboot (RAM) with gdb stubs
disabled.
When i enable the gdb stubs, the objdump of redboot gives me...
------------------------------------------------------------------------
-----------------
#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
bl initialize_stub
203000f0: eb0008d3 bl 20302444 <initialize_stub>
// Now that stub is initialized, change vector. It is possible
// to single-step through most of the init code, except the
below.
// Put a breakpoint at the call to cyg_hal_invoke_constructors
to
// pass over this bit (s-s depends on internal state in the
stub).
#endif
#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS) || \
defined(CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS)
mov r0,#0 // move vectors
203000f4: e3a00000 mov r0, #0 ; 0x0
ldr r1,=__exception_handlers
203000f8: e59f12c8 ldr r1, [pc, #712] ; 203003c8
<_eCos_id+0x14>
ldr r2,[r1,#0x04] // undefined instruction
....
------------------------------------------------------------------------
------------------
I find that redboot never returns (to 0x203000f4) after initialize_stub
is called.
The '+' sign which is the last function (putdebugchar) called in
initialize_stub is coming on
serial port, but tracing after this seems to lead to
software_interrupt->exception_handler.
and the $T050f.. (which points to startup_stack)
I would like to know what are the things that happen after
initalize_stub is called.
Do i have to change anything in the implementation for my board. Please
throw some light on
the same
Thanking u
harsha
-----Original Message-----
From: Harsha D
Sent: 01 July 2005 18:11
To: 'Andrew Lunn'
Cc: ecos-discuss@sources.redhat.com
Subject: RE: [ECOS] Redboot :: __startup_stack
Hi
I was able to get the redboot working by disabling the gdb stubs. (which
effectively makes initialize_stub not be called).
Now redboot prompt appears.. although some junk characters are taken as
input and the program seems to be in infinite loop.
But i am unable to understand what is that in the gdb stubs which is
making the redboot to crash. If you can throw some light on some of the
possibilities it would be great !!
Thanking you
harsha
-----Original Message-----
From: Andrew Lunn [mailto:andrew@lunn.ch]
Sent: 01 July 2005 13:16
To: Harsha D
Cc: ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] Redboot :: __startup_stack
On Fri, Jul 01, 2005 at 10:09:49AM +0530, Harsha D wrote:
> Hi
>
> ===============================================================
> Porting : Redboot
> Platform : ARM922T based board
> source base : based on Excalibur package
>
> ===============================================================
> Memory layout is
> --------------------------
> SRAM(32KB) 0x00000000 - 0x00008000
> RAM(32MB) 0x20000000 - 0x02000000
>
> ===============================================================
> My ram ldi file
> ---------------------
> MEMORY
> {
> ram : ORIGIN = 0x20000000, LENGTH = 0x02000000
> }
>
> SECTIONS
> {
> SECTIONS_BEGIN
> SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)
> SECTION_rom_vectors (ram, 0x20300000, LMA_EQ_VMA)
> SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
> CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
> SECTIONS_END
> }
....
> [ I am loading redboot at 0x20300000]
> Googling told me that
> fixed_vectors should be at 0x20(???) which is not the case for me.
> Will it cause any problems ? If yes then how should i have my memory
layout.
SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)
Add an sram memory region and change this to 0x20 and the fixed
vectors will move.
Andrew
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss