This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Porting to AT91 - problems with ARM/vectors.S
- To: ecos-discuss at sourceware dot cygnus dot com
- Subject: [ECOS] Porting to AT91 - problems with ARM/vectors.S
- From: Andreas Bürgel <ab at genologic dot de>
- Date: Wed, 13 Dec 2000 12:27:09 +0100
- Organization: GenoLogic GmbH, Dortmund
Hi,
now I'm able to substantiate my problem. If I modify the beginning of
vectors.S as following (replacing some instructions with NOPs)
PLATFORM_SETUP1 - and some of the following code - gets executed.
.code 32
.section ".vectors","ax"
.global __exception_handlers
__exception_handlers:
ldr pc,.reset_vector // 0x00
ldr pc,.undefined_instruction // 0x04
ldr pc,.software_interrupt // 0x08 start && software int
//ldr pc,.abort_prefetch // 0x0C
nop;
//ldr pc,.abort_data // 0x10
nop;
.word 0 // unused
//ldr pc,.IRQ // 0x18
//ldr pc,.FIQ // 0x1C
nop; nop;
// The layout of these pointers should match the vector table above
since
// they are copied in pairs.
.global vectors
vectors:
UNMAPPED_PTR(reset_vector) // 0x20
PTR(undefined_instruction) // 0x24
PTR(software_interrupt) // 0x28
PTR(abort_prefetch) // 0x2C
//PTR(abort_data) // 0x30
nop;
.word 0 // 0x34
PTR(IRQ) // 0x38
PTR(FIQ) // 0x3c
PTR(start) // This is copied to 0x28 for bootup // 0x40
// location 0x40 is used for storing DRAM size if known
// for some platforms.
// Other vectors
.balign 16 // Should be at 0x50
.balign 32
.text
// Startup code which will get the machine into supervisor mode
.global reset_vector
.type reset_vector,function
reset_vector:
...
As you can see I had to uncomment ldr pc,.{abort_prefetch, abort_data,
IRQ, FIQ}.
If I leave any of them untouched, PLATFORM_SETUP1 is never reached.
Using the CVS-version of vectors.S doesn't help much.
BTW, why aren't the cdl-files included in the CVS-tree?
--------------------------------------------------
Andreas Bürgel Software Engineer
ab@genologic.de GenoLogic GmbH, Dortmund, Germany