Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: [lpc2000] Strange data abort problem

2005-10-10 by Rob Jansen

Joris, Tiemen,

indeed a strange way to initialize the interrupts.
I've got the same kind of questions as Sten when looking at this code.
If your looking for startup code, have a look at 
http://www.myvoice.nl/electronics/files/i2c-test.zip - that contains a 
complete application, including startup code.

Main question is why you do your vector initialization like this. There 
is a reason for ARM to give us access to all these seperate vectors.
I would indeed specify seperate functions for all the 'nasty' vectors.

If this code is in Flash, not using the mapping of vectors to RAM (using 
the MEMMAP register)  you will get a data abort due to writing to flash.

Regards,

    Rob

> Can anyone tell us what's happening here? And why doe
> we get those anoying Data Aborts at this point... It's
> really getting us crazy...
>
> This is how the VIC-handling part of the startup.s
> looks:
>
> @@@@@@@@@@@
> .section .startup,"ax"
> .code 32
> .align 0
>
> b start
> b irqVector0
> b irqVector0
> b irqVector0
> b irqVector0
> b irqVector0
> b irqVector1
> b irqVector1
>
> @@@@@@@@@@@@@@@@
>
> @ create a variable to hold a C function pointer to be
> called on IRQ
>
> .global irqVector0
> irqVector0:
> .word 0 @ this should be set to a C function
>
> .global irqVector1
> irqVector1:
> .word 0 @ this should be set to a C function
>
> Thanks,
> Joris and Tiemen

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.