This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Int Vectors and Build Problem


ARM720T on ARM Integrator board.

After building my eCos executable, I can see in my Srecord and with my GDB,
that the int vectors, which are loaded at download time to address 0x40000 and
later copied to address 0x0, point to address 0xE59FF018, which holds no
memory. This is worked out at compilation time.

Would anyone know where these values maybe picked up from? Am I missing
anything in my linker file below?

Thanks

Leo

LINKER FILE:

------------------------------------------------------------

STARTUP(/Install/eCos4Usb/build/ecos-integrator/integrator_install/lib/vectors.o)
ENTRY(reset_vector)
INPUT(/Install/eCos4Usb/build/ecos-integrator/integrator_install/lib/extras.o)




GROUP
(
/Install/eCos4Usb/build/ecos-integrator/integrator_install/lib/libtarget.a
/opt/gnutools/lib/gcc-lib/arm-elf/3.2.1/armv4t/libgcc.a
/opt/gnutools/arm-elf/lib/armv4t/libsupc++.a
/Install/eCos4Usb/build/ecos-integrator/usb_software/lib/device/am7tdmi.arm-elf/MYlib.a
)

MEMORY
{
    ram : ORIGIN = 0, LENGTH = 0x08000000
}

SECTIONS
{
    .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : {
*(.debug_pubnames) } .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : {
*(.debug_abbrev) } .debug_l
ine 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 :
{ *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : {
*(.debug_macinfo) }
 .note.arm.ident 0 : { KEEP (*(.note.arm.ident)) }
    .fixed_vectors 0x20 : { . = .; KEEP (*(.fixed_vectors)) } > ram
    .rom_vectors 0x40000 : { __rom_vectors_vma = ABSOLUTE(.); . = .; KEEP
(*(.vectors)) } > ram __rom_vectors_lma = LOADADDR(.rom_vectors);
    .rel.text : { *(.rel.text) *(.rel.text.*) *(.rel.gnu.linkonce.t*) } > ram
.rela.text : { *(.rela.text) *(.rela.text.*) *(.rela.gnu.linkonce.t*) } > ram
.rel.data : {
*(.rel.data) *(.rel.data.*) *(.rel.gnu.linkonce.d*) } > ram .rela.data : {
*(.rela.data) *(.rela.data.*) *(.rela.gnu.linkonce.d*) } > ram .rel.rodata : {
*(.rel.rodata) *
(.rel.rodata.*) *(.rel.gnu.linkonce.r*) } > ram .rela.rodata : {
*(.rela.rodata) *(.rela.rodata.*) *(.rela.gnu.linkonce.r*) } > ram .rel.got : {
*(.rel.got) } > ram .rela
.got : { *(.rela.got) } > ram .rel.ctors : { *(.rel.ctors) } > ram .rela.ctors
: { *(.rela.ctors) } > ram .rel.dtors : { *(.rel.dtors) } > ram .rela.dtors : {
*(.rela.dto
rs) } > ram .rel.init : { *(.rel.init) } > ram .rela.init : { *(.rela.init) } >
ram .rel.fini : { *(.rel.fini) } > ram .rela.fini : { *(.rela.fini) } > ram
.rel.bss : { *
(.rel.bss) } > ram .rela.bss : { *(.rela.bss) } > ram .rel.plt : { *(.rel.plt)
} > ram .rela.plt : { *(.rela.plt) } > ram .rel.dyn : { *(.rel.dyn) } > ram
    .text ALIGN (0x4) : { _stext = ABSOLUTE(.); PROVIDE (__stext =
ABSOLUTE(.)); *(.text*) *(.gnu.warning) *(.gnu.linkonce.t.*) *(.init)
*(.glue_7) *(.glue_7t) } > ram _e
text = .; PROVIDE (__etext = .);
    .fini ALIGN (0x4) : { . = .; *(.fini) } > ram
    .rodata ALIGN (0x4) : { . = .; *(.rodata*) *(.gnu.linkonce.r.*) } > ram
    .rodata1 ALIGN (0x4) : { . = .; *(.rodata1) } > ram
    .got ALIGN (0x4) : { . = .; *(.got.plt) *(.got) _GOT1_START_ = ABSOLUTE
(.); *(.got1) _GOT1_END_ = ABSOLUTE (.); _GOT2_START_ = ABSOLUTE (.); *(.got2)
_GOT2_END_ = AB
SOLUTE (.); } > ram
    .fixup ALIGN (0x4) : { . = .; *(.fixup) } > ram
    .gcc_except_table ALIGN (0x4) : { . = .; *(.gcc_except_table) } > ram
    .data ALIGN (0x4) : { __ram_data_start = ABSOLUTE (.); *(.data*) *(.data1)
*(.gnu.linkonce.d.*) . = ALIGN (4); KEEP(*( SORT (.ecos.table.*))) ; . = ALIGN
(4); __CTOR_
LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.);
__DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE
(.); *(.dynami
c) *(.sdata*) *(.gnu.linkonce.s.*) . = ALIGN (4); *(.2ram.*) } > ram
__rom_data_start = LOADADDR (.data); __ram_data_end = .; PROVIDE
(__ram_data_end = .); _edata = .; PR
OVIDE (edata = .); PROVIDE (__rom_data_end = LOADADDR (.data) + SIZEOF(.data));
    .bss ALIGN (0x4) : { __bss_start = ABSOLUTE (.); *(.scommon) *(.dynsbss)
*(.sbss*) *(.gnu.linkonce.sb.*) *(.dynbss) *(.bss*) *(.gnu.linkonce.b.*)
*(COMMON) __bss_end
= ABSOLUTE (.); } > ram


=====
Mobile Belgium: +32 (0)495 89 59 65
Contact in France:  +33 (0)476 275661

Registered Linux User Number 205935.
http://counter.li.org.


	
	
		
___________________________________________________________
Yahoo! Messenger - Communicate instantly..."Ping" 
your friends today! Download Messenger Now 
http://uk.messenger.yahoo.com/download/index.html

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]