From 5b9c5d9c9388f58c0d08c398dc368ca40460830a Mon Sep 17 00:00:00 2001 From: Perry Hung Date: Fri, 28 May 2010 03:06:03 -0400 Subject: libcs3 refactor merge Removed dependency on libcs3.a because Codesourcery does not provide the source for it. We now link against a modified libcs3-lanchon-stm32.a built from parts in public domain from Lanchon, and a start_c.c from Codesourcery that is licensed under a permissive license. Also removed all of the extra linker cruft from the stm32conf directory. The linker files now live in support/ld The openocd scripts now live in support/openocd The udev rules and copy-to-ide scripts now live in support/scripts The source lives in support/ld/libcs3-lanchon-stm32.tar.gz --- .../lanchon-stm32/src/libcs3/generic-m-reset.S | 87 ---------------------- stm32conf/lanchon-stm32/src/libcs3/generic-reset.S | 87 ---------------------- stm32conf/lanchon-stm32/src/libcs3/start_c.c | 58 --------------- 3 files changed, 232 deletions(-) delete mode 100644 stm32conf/lanchon-stm32/src/libcs3/generic-m-reset.S delete mode 100644 stm32conf/lanchon-stm32/src/libcs3/generic-reset.S delete mode 100644 stm32conf/lanchon-stm32/src/libcs3/start_c.c (limited to 'stm32conf/lanchon-stm32/src/libcs3') diff --git a/stm32conf/lanchon-stm32/src/libcs3/generic-m-reset.S b/stm32conf/lanchon-stm32/src/libcs3/generic-m-reset.S deleted file mode 100644 index 95dbdbe..0000000 --- a/stm32conf/lanchon-stm32/src/libcs3/generic-m-reset.S +++ /dev/null @@ -1,87 +0,0 @@ -/* Reset code for generic-m - * - * Version:Sourcery G++ 4.2-84 - * BugURL:https://support.codesourcery.com/GNUToolchain/ - * - * Copyright 2007 CodeSourcery. - * - * 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 - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. */ - -#if defined(__thumb2__) || defined(__ARM_ARCH_6M__) -#define THUMB 1 - .thumb - .thumb_func -#else - .arm -#endif - .section .cs3.reset,"x",%progbits - .globl __cs3_reset_generic_m - .type __cs3_reset_generic_m, %function -__cs3_reset_generic_m: - .fnstart -#include - - adr r1, __cs3_heap_start_ptr - mov r0,#AngelSWI_Reason_HeapInfo -#if THUMB - bkpt 0xAB -#else - swi 0x123456 -#endif - cmp r0,#0 - blt 2f -/* __cs3_heap_start contains - [0] ? - [4] zero or heap limit - [8] zero or top of stack - [12] ? */ - ldr r2, __cs3_heap_start_ptr - -#if THUMB - ldr r1,=__cs3_stack - mov sp,r1 -#else - ldr sp,=__cs3_stack -#endif - ldr r0,[r2,#8] /* top of stack */ - cmp r0, #0 -#if THUMB - beq 1f - mov sp,r0 -1: -#else - movne sp,r0 -#endif - ldr r1,=__cs3_heap_limit - ldr r0,[r2,#4] /* heap limit */ - cmp r0,#0 -#if THUMB - beq 1f - str r0,[r1] -1: -#else - strne r0,[r1] -#endif - .word __cs3_heap_start -2: -#if THUMB - ldr r0,=__cs3_start_c - bx r0 -#else - b __cs3_start_c -#endif - .pool - .cantunwind - .fnend - .align 2 -__cs3_heap_start_ptr: - .word __cs3_heap_start - .size __cs3_reset_generic_m,.-__cs3_reset_generic_m diff --git a/stm32conf/lanchon-stm32/src/libcs3/generic-reset.S b/stm32conf/lanchon-stm32/src/libcs3/generic-reset.S deleted file mode 100644 index d5b54ab..0000000 --- a/stm32conf/lanchon-stm32/src/libcs3/generic-reset.S +++ /dev/null @@ -1,87 +0,0 @@ -/* Reset code for generic - * - * Version:Sourcery G++ 4.2-84 - * BugURL:https://support.codesourcery.com/GNUToolchain/ - * - * Copyright 2007 CodeSourcery. - * - * 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 - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. */ - -#if defined(__thumb2__) || defined(__ARM_ARCH_6M__) -#define THUMB 1 - .thumb - .thumb_func -#else - .arm -#endif - .section .cs3.reset,"x",%progbits - .globl __cs3_reset_generic - .type __cs3_reset_generic, %function -__cs3_reset_generic: - .fnstart -#include - - adr r1, __cs3_heap_start_ptr - mov r0,#AngelSWI_Reason_HeapInfo -#if THUMB - bkpt 0xAB -#else - swi 0x123456 -#endif - cmp r0,#0 - blt 2f -/* __cs3_heap_start contains - [0] ? - [4] zero or heap limit - [8] zero or top of stack - [12] ? */ - ldr r2, __cs3_heap_start_ptr - -#if THUMB - ldr r1,=__cs3_stack - mov sp,r1 -#else - ldr sp,=__cs3_stack -#endif - ldr r0,[r2,#8] /* top of stack */ - cmp r0, #0 -#if THUMB - beq 1f - mov sp,r0 -1: -#else - movne sp,r0 -#endif - ldr r1,=__cs3_heap_limit - ldr r0,[r2,#4] /* heap limit */ - cmp r0,#0 -#if THUMB - beq 1f - str r0,[r1] -1: -#else - strne r0,[r1] -#endif - .word __cs3_heap_start -2: -#if THUMB - ldr r0,=__cs3_start_c - bx r0 -#else - b __cs3_start_c -#endif - .pool - .cantunwind - .fnend - .align 2 -__cs3_heap_start_ptr: - .word __cs3_heap_start - .size __cs3_reset_generic,.-__cs3_reset_generic diff --git a/stm32conf/lanchon-stm32/src/libcs3/start_c.c b/stm32conf/lanchon-stm32/src/libcs3/start_c.c deleted file mode 100644 index dff9fa3..0000000 --- a/stm32conf/lanchon-stm32/src/libcs3/start_c.c +++ /dev/null @@ -1,58 +0,0 @@ -/* CS3 start_c routine. - * - * Copyright (c) 2006, 2007 CodeSourcery Inc - * - * 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 - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include "cs3.h" - -extern void __libc_init_array (void); - -extern int main (int, char **, char **); - -extern void exit (int) __attribute__ ((noreturn, weak)); - -void __attribute ((noreturn)) -__cs3_start_c (void) -{ - unsigned regions = __cs3_region_num; - const struct __cs3_region *rptr = __cs3_regions; - int exit_code; - - /* Initialize memory */ - for (regions = __cs3_region_num, rptr = __cs3_regions; regions--; rptr++) - { - long long *src = (long long *)rptr->init; - long long *dst = (long long *)rptr->data; - unsigned limit = rptr->init_size; - unsigned count; - - if (src != dst) - for (count = 0; count != limit; count += sizeof (long long)) - *dst++ = *src++; - else - dst = (long long *)((char *)dst + limit); - limit = rptr->zero_size; - for (count = 0; count != limit; count += sizeof (long long)) - *dst++ = 0; - } - - /* Run initializers. */ - __libc_init_array (); - - exit_code = main (0, NULL, NULL); - if (exit) - exit (exit_code); - /* If exit is NULL, make sure we don't return. */ - for (;;) - continue; -} -- cgit v1.2.3