Yahoo Groups archive

Lpc2000

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

Message

Re: Handling interrupts on RAM (debug) version

2006-05-31 by Karl Olsen

--- In lpc2000@yahoogroups.com, "stefano_m_a" <stefano_mora@...> 
wrote:
>
> It's incredible, i found an error on the code i wrote (and i
> posted) and the code should be not running, but i saw it running !!
> 
> > ...
> > 	ldr   pc, _irq		/* .18 IRQ - _irq		*/
> > ...
> > 
> > _irq:
> > 	b timer0ISR
> > ...
> 
> _irq label should define an address and not an instruction ...
> I corrected the code as following:
> 
> 	ldr   pc, _irq		/* .18 IRQ - _irq		*/
> ...
>  
> _irq:
> 	.word __irq

Or just:

_irq:
  .word timer0ISR

 
> ...
> __irq:
> 	b timer0ISR
> 
> But now the running is bad.....
> 
> When the IRQ is fired the PC is pointing 0x18 or 0x4000.0018 ?????

0x18.  The ARM7 always reads the vectors at address 0x00-0x1C.  The 
Philips MEMMAP feature makes the first 64 bytes of RAM readable at 
both address 0x00 and 0x4000.0000.

Karl Olsen

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.