[ECOS] Porting to AT91 - problems with ARM/vectors.S

Andreas Bürgel ab@genologic.de
Wed Dec 13 04:21:00 GMT 2000


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
ldr	pc,.reset_vector		// 0x00
ldr	pc,.undefined_instruction	// 0x04
ldr	pc,.software_interrupt		// 0x08 start && software int
//ldr	pc,.abort_prefetch		// 0x0C
//ldr	pc,.abort_data			// 0x10
.word	0				// unused
//ldr	pc,.IRQ				// 0x18
//ldr	pc,.FIQ				// 0x1C
nop; nop;

// The layout of these pointers should match the vector table above
// they are copied in pairs.
	.global	vectors
UNMAPPED_PTR(reset_vector)			// 0x20
PTR(undefined_instruction)			// 0x24
PTR(software_interrupt)				// 0x28
PTR(abort_prefetch)				// 0x2C
//PTR(abort_data)					// 0x30
.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

// Startup code which will get the machine into supervisor mode
.global	reset_vector
.type	reset_vector,function

As you can see I had to uncomment ldr pc,.{abort_prefetch, abort_data,
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

More information about the Ecos-discuss mailing list