diff options
-rw-r--r-- | libmaple/stm32f1/vector_table_performance.S | 12 | ||||
-rw-r--r-- | support/ld/common.inc | 14 | ||||
-rw-r--r-- | support/ld/stm32/f1/performance/vector_symbols.inc | 4 | ||||
-rw-r--r-- | wirish/start.S | 34 | ||||
-rw-r--r-- | wirish/start_c.c | 35 |
5 files changed, 78 insertions, 21 deletions
diff --git a/libmaple/stm32f1/vector_table_performance.S b/libmaple/stm32f1/vector_table_performance.S index 7067d95..0392a02 100644 --- a/libmaple/stm32f1/vector_table_performance.S +++ b/libmaple/stm32f1/vector_table_performance.S @@ -2,13 +2,13 @@ .section ".stm32.interrupt_vector" - .globl __cs3_stm32_vector_table - .type __cs3_stm32_vector_table, %object + .globl __stm32_vector_table + .type __stm32_vector_table, %object -__cs3_stm32_vector_table: +__stm32_vector_table: /* CM3 core interrupts */ - .long __cs3_stack - .long __cs3_reset + .long __msp_init + .long __exc_reset .long __exc_nmi .long __exc_hardfault .long __exc_memmanage @@ -87,4 +87,4 @@ __cs3_stm32_vector_table: .long __irq_dma2_channel4_5 #endif /* STM32_HIGH_DENSITY */ - .size __cs3_stm32_vector_table, . - __cs3_stm32_vector_table + .size __stm32_vector_table, . - __stm32_vector_table diff --git a/support/ld/common.inc b/support/ld/common.inc index 0d1f4ed..926f9eb 100644 --- a/support/ld/common.inc +++ b/support/ld/common.inc @@ -22,21 +22,21 @@ GROUP(libgcc.a libc.a libm.a) INCLUDE vector_symbols.inc /* STM32 vector table. */ -EXTERN(__cs3_stm32_vector_table) +EXTERN(__stm32_vector_table) -/* libcs3 C start function. */ -EXTERN(__cs3_start_c) +/* C runtime initialization function. */ +EXTERN(start_c) /* main entry point */ EXTERN(main) /* Initial stack pointer value. */ -EXTERN(__cs3_stack) -PROVIDE(__cs3_stack = ORIGIN(ram) + LENGTH(ram)); +EXTERN(__msp_init) +PROVIDE(__msp_init = ORIGIN(ram) + LENGTH(ram)); /* Reset vector and chip reset entry point */ EXTERN(_start) -PROVIDE(__cs3_reset = _start); +PROVIDE(__exc_reset = _start); /* Heap boundaries, for libmaple */ EXTERN(_lm_heap_start); @@ -162,7 +162,7 @@ SECTIONS * to go about this. [mbolivar] */ _lm_heap_start = DEFINED(_lm_heap_start) ? _lm_heap_start : _end; - _lm_heap_end = DEFINED(_lm_heap_end) ? _lm_heap_end : __cs3_stack; + _lm_heap_end = DEFINED(_lm_heap_end) ? _lm_heap_end : __msp_init; . = ALIGN (8); _edata = .; } > REGION_DATA AT> REGION_TEXT diff --git a/support/ld/stm32/f1/performance/vector_symbols.inc b/support/ld/stm32/f1/performance/vector_symbols.inc index 6d7ff6e..f8519bb 100644 --- a/support/ld/stm32/f1/performance/vector_symbols.inc +++ b/support/ld/stm32/f1/performance/vector_symbols.inc @@ -1,5 +1,5 @@ -EXTERN(__cs3_stack) -EXTERN(__cs3_reset) +EXTERN(__msp_init) +EXTERN(__exc_reset) EXTERN(__exc_nmi) EXTERN(__exc_hardfault) EXTERN(__exc_memmanage) diff --git a/wirish/start.S b/wirish/start.S index 4d1d405..cb87d62 100644 --- a/wirish/start.S +++ b/wirish/start.S @@ -1,4 +1,34 @@ +/****************************************************************************** + * The MIT License + * + * Copyright (c) 2011 LeafLabs, LLC. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + *****************************************************************************/ + /* + * This file is a modified version of a file obtained from + * CodeSourcery Inc. (now part of Mentor Graphics Corp.), in which the + * following text appeared: + * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this @@ -18,9 +48,9 @@ .type _start, %function _start: .fnstart - ldr r1,=__cs3_stack + ldr r1,=__msp_init mov sp,r1 - ldr r1,=__cs3_start_c + ldr r1,=start_c bx r1 .pool .cantunwind diff --git a/wirish/start_c.c b/wirish/start_c.c index cb96fc5..a80334d 100644 --- a/wirish/start_c.c +++ b/wirish/start_c.c @@ -1,4 +1,33 @@ -/* CS3 start_c routine. +/****************************************************************************** + * The MIT License + * + * Copyright (c) 2011 LeafLabs, LLC. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + *****************************************************************************/ + +/* + * This file is a modified version of a file obtained from + * CodeSourcery Inc. (now part of Mentor Graphics Corp.), in which the + * following text appeared: * * Copyright (c) 2006, 2007 CodeSourcery Inc * @@ -30,9 +59,7 @@ struct rom_img_cfg { extern char _lm_rom_img_cfgp; -void __attribute__ ((noreturn)) -__cs3_start_c (void) -{ +void __attribute__((noreturn)) start_c(void) { struct rom_img_cfg *img_cfg = (struct rom_img_cfg*)&_lm_rom_img_cfgp; long long *src; long long *dst; |