This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Int Vectors and Build Problem
- From: Leo McManus <leomcmanusir at yahoo dot com>
- To: Ecos EcosList <ecos-discuss at sources dot redhat dot com>
- Date: Fri, 26 Mar 2004 12:31:10 +0000 (GMT)
- Subject: [ECOS] Int Vectors and Build Problem
- Reply-to: LeoM at 3rdRootDSP dot Com
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