Hello,
"Not Really Me" sc...@[EMAIL PROTECTED]
wrote:
> You can use the relative addressing if all of your interrupt handlers
fit
> in
> the first 32K of code (14 bit address range). Some folks have a first
> level
> handler in that space that dispatches to other relocatable code outside
of
> that range.
I see, it's a bit clearer now. And what about this snippet from the
Atmel's
appnote "Getting started with at91sam7 controllers":
.....
reset_vector:
ldr pc, =reset_handler
undef_vector:
b undef_vector /* Undefined Instruction */
swi_vector:
b swi_vector /* Software Interrupt */
.....
They put the vectors table and IRQ handler in the seperate section named
..vectors, while "reset_handler" in .text. Is that why they load absolute
address of 'reset_handler' in to PC ?
By the way, I checked it disassembles in to "ldr pc, [pc, #NUM]", so it
would be equivalently to write "ldr pc, [pc, #reset_handler]", is that
right
?
> The second method allows you to put full 32 bit addresses in the table
> (which usually immediately follows the vectors). Normally you boot from
> flash and then set up RAM and do a remap to put the RAM version of the
> vector table at 0. Once that is done you can modify the jump table to
> install handlers.
Best regards, Roman Mashak


|