Yahoo Groups archive

Lpc2000

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

Message

Re: Strange data abort problem

2005-10-11 by jorishooijberg

--- In lpc2000@yahoogroups.com, Rob Jansen <rob@m...> wrote:

> indeed a strange way to initialize the interrupts.
> I've got the same kind of questions as Sten when looking at this code.

OK, it IS a nasty interrupt table... guilty as charged... 

> If your looking for startup code, have a look at 
> http://www.myvoice.nl/electronics/files/i2c-test.zip

The startup code in here is the same as embeddedjanitor's example.
We changed our startup.s like this:


.section .startup,"ax"
         .code 32
         .align 0
 		
         LDR PC,[PC,#resetHandlerAddress - . - 8]
         LDR PC,[PC,#undefHandlerAddress - . - 8]
         LDR PC,[PC,#swiHandlerAddress - . - 8]
         LDR PC,[PC,#prefetch_abortHandlerAddress - . - 8]
         LDR PC,[PC,#data_abortHandlerAddress - . - 8]
         NOP                                         
         LDR PC,[PC,#irqHandlerAddress - . - 8]      
         LDR PC,[PC,#fiqHandlerAddress - . - 8]     

resetHandlerAddress:
  .word start

[etc etc]

irqHandlerAddress:
  .word MyTimerInterrupt

fiqHandlerAddress:
  .word MyTimerInterrupt
  
  
#
# Reserve memory for exception handlers
#
        #0x00000020
HandleReset:

[etc etc]
        #0x00000034
HandleIRQ:

        #0x00000038
HandleFIQ:
 

Running the code gives us A Prefetch error, but the interrupts are
handled correct.
Is seems that the processor doesn't like it when we change the program
counter... Did we forget something?  
 
Anyay, thanks for the help,

Joris

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.