diff --git a/bsp/at91sam9260/platform/rt_low_level_gcc.inc b/bsp/at91sam9260/platform/rt_low_level_gcc.inc index c6edd3787c..f9825f5b53 100644 --- a/bsp/at91sam9260/platform/rt_low_level_gcc.inc +++ b/bsp/at91sam9260/platform/rt_low_level_gcc.inc @@ -29,3 +29,5 @@ .equ IRQ_STK_SIZE, 4096 .equ FIQ_STK_SIZE, 4096 .equ SYS_STK_SIZE, 2048 +/* vector table start should be 0x00000000 or 0xFFFF0000 */ +.equ VECTOR_TABLE_START, 0x00000000 diff --git a/bsp/at91sam9260/platform/rt_low_level_iar.inc b/bsp/at91sam9260/platform/rt_low_level_iar.inc index 3046253d07..e5e62b04cb 100644 --- a/bsp/at91sam9260/platform/rt_low_level_iar.inc +++ b/bsp/at91sam9260/platform/rt_low_level_iar.inc @@ -29,3 +29,5 @@ #define IRQ_STK_SIZE 1024 #define FIQ_STK_SIZE 1024 #define SYS_STK_SIZE 512 +/* vector table start should be 0x00000000 or 0xFFFF0000 */ +#define VECTOR_TABLE_START 0x00000000 diff --git a/bsp/at91sam9260/platform/rt_low_level_keil.inc b/bsp/at91sam9260/platform/rt_low_level_keil.inc index c3cde15ded..3ff929c3a6 100644 --- a/bsp/at91sam9260/platform/rt_low_level_keil.inc +++ b/bsp/at91sam9260/platform/rt_low_level_keil.inc @@ -29,4 +29,6 @@ ABT_STK_SIZE EQU 512 IRQ_STK_SIZE EQU 1024 FIQ_STK_SIZE EQU 1024 SYS_STK_SIZE EQU 512 +;/* vector table start should be 0x00000000 or 0xFFFF0000 */ +VECTOR_TABLE_START 0x00000000 END diff --git a/libcpu/arm/arm926/start_gcc.S b/libcpu/arm/arm926/start_gcc.S index ee26f96fc6..05b39debc5 100644 --- a/libcpu/arm/arm926/start_gcc.S +++ b/libcpu/arm/arm926/start_gcc.S @@ -142,7 +142,7 @@ Reset_Handler: @; Copy Exception Vectors to Internal RAM LDR R8, =entry @; Source - LDR R9, =0x00000000 @; Destination + LDR R9, =VECTOR_TABLE_START @; Destination CMP R8, R9 BEQ Setup_Stack LDMIA R8!, {R0-R7} @; Load Vectors diff --git a/libcpu/arm/arm926/start_iar.S b/libcpu/arm/arm926/start_iar.S index db3a253414..b7cc9e170e 100644 --- a/libcpu/arm/arm926/start_iar.S +++ b/libcpu/arm/arm926/start_iar.S @@ -143,7 +143,7 @@ Reset_Handler: ; Copy Exception Vectors to Internal RAM LDR R8, =Entry_Point ; Source - LDR R9, =0x00000000 ; Destination + LDR R9, =VECTOR_TABLE_START ; Destination CMP R8, R9 BEQ Setup_Stack LDMIA R8!, {R0-R7} ; Load Vectors diff --git a/libcpu/arm/arm926/start_rvds.S b/libcpu/arm/arm926/start_rvds.S index 00e0c6136a..cabcd6590b 100644 --- a/libcpu/arm/arm926/start_rvds.S +++ b/libcpu/arm/arm926/start_rvds.S @@ -150,7 +150,7 @@ Reset_Handler ; Copy Exception Vectors to Internal RAM LDR R8, =Entry_Point ; Source - LDR R9, =0x00000000 ; Destination + LDR R9, =VECTOR_TABLE_START ; Destination CMP R8, R9 BEQ Setup_Stack LDMIA R8!, {R0-R7} ; Load Vectors