Content originally posted in LPCWare by LabRat on Wed Oct 01 09:13:06 MST 2014
Quote: dariush_abbasi868
in fact the frimawre will start at which address?
Vector table entries are WORDs (4 byte, little endian)...
Sample (LPC1549):
[color=#33f]0x00000000[/color] 02003FE0 00000191 00000139 0000013D
[color=#30f]0x00000010[/color] 00000141 00000145 00000149 FDFFB84A
The vector table contains the reset value of the stack pointer, and the start addresses,
also called exception vectors, for all exception handlers.
The first word is the stack pointer (StackTop): 0x02003FE0
In this sample (LPC1549) this value is the result of RAM0_END – STACK_OFFSET.
StackTop = RAM0_END – STACK_OFFSET = StackTop = 0x0200400 – 0x20 = 0x02003FE0
The following words are the exception vectors (=start addresses) for all exception handlers.
The first exception vector at 0x0004 is Reset. In this sample (LPC1549) this value is 0x00000191.
LSB is indicating Thumb mode, so the processor is switching to Thumb mode before executing the
new address 0x00000190, where Reset ISR is starting.
So your vector table is starting at 0x2038 :O