diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-06-21 12:28:36 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-06-21 12:28:36 +0000 |
commit | c5d8d2dcef6d8afb9d2b7b49aa80bdceeb2391cc (patch) | |
tree | 42ab83199ce142da2cfa1ef6e45136313d86579d /c/src/lib/libbsp/arm | |
parent | 2010-06-20 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-c5d8d2dcef6d8afb9d2b7b49aa80bdceeb2391cc.tar.bz2 |
2010-06-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
* shared/start/start.S, shared/startup/linkcmds.base,
shared/include/linker-symbols.h: Added and use bsp_vector_table_begin,
bsp_vector_table_size and bsp_vector_table_end.
Diffstat (limited to 'c/src/lib/libbsp/arm')
-rw-r--r-- | c/src/lib/libbsp/arm/ChangeLog | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/include/linker-symbols.h | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/start/start.S | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/startup/linkcmds.base | 7 |
4 files changed, 17 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/arm/ChangeLog b/c/src/lib/libbsp/arm/ChangeLog index 459141012c..3234feb9ef 100644 --- a/c/src/lib/libbsp/arm/ChangeLog +++ b/c/src/lib/libbsp/arm/ChangeLog @@ -1,3 +1,9 @@ +2010-06-21 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * shared/start/start.S, shared/startup/linkcmds.base, + shared/include/linker-symbols.h: Added and use bsp_vector_table_begin, + bsp_vector_table_size and bsp_vector_table_end. + 2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de> * shared/include/start.h: Define start section attributes. diff --git a/c/src/lib/libbsp/arm/shared/include/linker-symbols.h b/c/src/lib/libbsp/arm/shared/include/linker-symbols.h index b8afed5c77..587525102b 100644 --- a/c/src/lib/libbsp/arm/shared/include/linker-symbols.h +++ b/c/src/lib/libbsp/arm/shared/include/linker-symbols.h @@ -102,6 +102,10 @@ LINKER_SYMBOL(bsp_section_stack_begin) LINKER_SYMBOL(bsp_section_stack_end) LINKER_SYMBOL(bsp_section_stack_size) +LINKER_SYMBOL(bsp_vector_table_begin) +LINKER_SYMBOL(bsp_vector_table_end) +LINKER_SYMBOL(bsp_vector_table_size) + /** @} */ #ifdef __cplusplus diff --git a/c/src/lib/libbsp/arm/shared/start/start.S b/c/src/lib/libbsp/arm/shared/start/start.S index c4a5d806a7..dcafd1173a 100644 --- a/c/src/lib/libbsp/arm/shared/start/start.S +++ b/c/src/lib/libbsp/arm/shared/start/start.S @@ -168,7 +168,7 @@ bsp_start_hook_0_done: * vectors and the pointers to the default exception handlers. */ - ldr r0, =bsp_section_vector_begin + ldr r0, =bsp_vector_table_begin adr r1, vector_block ldmia r1!, {r2-r9} stmia r0!, {r2-r9} diff --git a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base index 8e7764f5a3..4b092c59fa 100644 --- a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base +++ b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base @@ -58,6 +58,8 @@ bsp_stack_svc_size = ALIGN (bsp_stack_svc_size, bsp_stack_align); bsp_stack_und_size = DEFINED (bsp_stack_und_size) ? bsp_stack_und_size : 128; bsp_stack_und_size = ALIGN (bsp_stack_und_size, bsp_stack_align); +bsp_vector_table_size = DEFINED (bsp_vector_table_size) ? bsp_vector_table_size : 64; + SECTIONS { .start : { /* @@ -91,7 +93,7 @@ SECTIONS { * BSP: Reserve space for the the exception vector table and * the pointers to the default exceptions handlers. */ - . = . + 64; + . = . + bsp_vector_table_size; /* * BSP: Reserve space for mode stacks @@ -134,6 +136,9 @@ SECTIONS { bsp_section_vector_size = bsp_section_vector_end - bsp_section_vector_begin; + bsp_vector_table_begin = bsp_vector_table_size != 0 ? bsp_section_vector_begin : bsp_section_start_begin; + bsp_vector_table_end = bsp_vector_table_begin + bsp_vector_table_size; + .vbarrier : { . = ALIGN (bsp_section_vbarrier_align); } > REGION_VECTOR |