aboutsummaryrefslogtreecommitdiffstats
path: root/stm32conf/lanchon-stm32/src/libcs3
diff options
context:
space:
mode:
authorPerry Hung <iperry@alum.mit.edu>2010-05-28 03:06:03 -0400
committerPerry Hung <iperry@alum.mit.edu>2010-05-28 03:06:03 -0400
commit5b9c5d9c9388f58c0d08c398dc368ca40460830a (patch)
tree3f9fb49a69acd4c0f2d05733b30eb32af5acb006 /stm32conf/lanchon-stm32/src/libcs3
parentcf068bc0ac946391c940a79ee2e55e1ff87eb79a (diff)
downloadlibrambutan-5b9c5d9c9388f58c0d08c398dc368ca40460830a.tar.gz
librambutan-5b9c5d9c9388f58c0d08c398dc368ca40460830a.zip
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
Diffstat (limited to 'stm32conf/lanchon-stm32/src/libcs3')
-rw-r--r--stm32conf/lanchon-stm32/src/libcs3/generic-m-reset.S87
-rw-r--r--stm32conf/lanchon-stm32/src/libcs3/generic-reset.S87
-rw-r--r--stm32conf/lanchon-stm32/src/libcs3/start_c.c58
3 files changed, 0 insertions, 232 deletions
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 <rdi-io.h>
-
- 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 <rdi-io.h>
-
- 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;
-}