aboutsummaryrefslogtreecommitdiffhomepage
path: root/AT91SAM7S256/SAM7S256/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'AT91SAM7S256/SAM7S256/gcc')
-rw-r--r--AT91SAM7S256/SAM7S256/gcc/.gitignore3
-rw-r--r--AT91SAM7S256/SAM7S256/gcc/Makefile109
-rw-r--r--AT91SAM7S256/SAM7S256/gcc/lib/abort.c32
-rw-r--r--AT91SAM7S256/SAM7S256/gcc/lib/errno.c32
-rw-r--r--AT91SAM7S256/SAM7S256/gcc/lib/sbrk.c44
-rw-r--r--AT91SAM7S256/SAM7S256/gcc/lib/sscanf.c49
-rw-r--r--AT91SAM7S256/SAM7S256/gcc/lib/strtod.c257
-rw-r--r--AT91SAM7S256/SAM7S256/gcc/nxt.ld167
8 files changed, 0 insertions, 693 deletions
diff --git a/AT91SAM7S256/SAM7S256/gcc/.gitignore b/AT91SAM7S256/SAM7S256/gcc/.gitignore
deleted file mode 100644
index 83a204c..0000000
--- a/AT91SAM7S256/SAM7S256/gcc/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-version.mak
-nxt_firmware.bin
-nxt_firmware.rfw
diff --git a/AT91SAM7S256/SAM7S256/gcc/Makefile b/AT91SAM7S256/SAM7S256/gcc/Makefile
deleted file mode 100644
index f236a08..0000000
--- a/AT91SAM7S256/SAM7S256/gcc/Makefile
+++ /dev/null
@@ -1,109 +0,0 @@
-BASE = ../..
-SRCDIR = $(BASE)/Source
-DBGDIR = $(BASE)/armdebug/Debugger
-CPUINCDIR = $(BASE)/SAM7S256/Include
-
-GIT_VERSION := $(shell git rev-parse --short=7 HEAD)
-CUSTOM_FIRMWAREVERSION = $(GIT_VERSION)
-
-TARGET = nxt_firmware
-
-# Set to 'y' to enable embedded debuger.
-ARMDEBUG = n
-
-ARM_SOURCES =
-THUMB_SOURCES = c_button.c c_cmd.c c_comm.c c_display.c c_input.c c_ioctrl.c \
- c_loader.c c_lowspeed.c c_output.c c_sound.c c_ui.c \
- d_bt.c d_button.c d_display.c d_hispeed.c d_input.c \
- d_ioctrl.c d_loader.c d_lowspeed.c d_output.c d_sound.c \
- d_timer.c d_usb.c \
- m_sched.c \
- abort.c errno.c sbrk.c strtod.c sscanf.c \
- Cstartup_SAM7.c
-
-ASM_ARM_SOURCE = Cstartup.S
-ASM_THUMB_SOURCE =
-
-vpath %.c $(SRCDIR)
-vpath %.c $(CPUINCDIR)
-vpath %.c lib
-vpath %.S $(CPUINCDIR)
-
-INCLUDES =
-
-MCU = arm7tdmi
-STARTOFUSERFLASH_DEFINES = -DSTARTOFUSERFLASH_FROM_LINKER=1
-VERSION_DEFINES = -DCUSTOM_FIRMWAREVERSION=\"$(CUSTOM_FIRMWAREVERSION)\"
-DEFINES = -DPROTOTYPE_PCB_4 -DNEW_MENU -DROM_RUN -DVECTORS_IN_RAM \
- $(STARTOFUSERFLASH_DEFINES) $(VERSION_DEFINES)
-OPTIMIZE = -Os -fno-strict-aliasing \
- -ffunction-sections -fdata-sections
-WARNINGS = -Wall -W -Wundef -Wno-unused -Wno-format
-THUMB_INTERWORK = -mthumb-interwork
-CFLAGS = -g -mcpu=$(MCU) $(THUMB) $(THUMB_INTERWORK) $(WARNINGS) $(OPTIMIZE)
-ASFLAGS = -g -mcpu=$(MCU) $(THUMB) $(THUMB_INTERWORK)
-CPPFLAGS = $(INCLUDES) $(DEFINES) -MMD
-LDSCRIPT = nxt.ld
-LDFLAGS = -nostdlib -T $(LDSCRIPT) -Wl,--gc-sections
-LDLIBS = -lc -lm -lgcc
-
-ifeq ($(ARMDEBUG),y)
-ASM_ARM_SOURCE += abort_handler.S undef_handler.S debug_hexutils.S \
- debug_stub.S debug_comm.S debug_opcodes.S \
- debug_runlooptasks.S
-vpath %.S $(DBGDIR)
-DEFINES += -DARMDEBUG
-INCLUDES += -I../../armdebug/Debugger
-endif
-
-CROSS_COMPILE = arm-none-eabi-
-CC = $(CROSS_COMPILE)gcc
-OBJDUMP = $(CROSS_COMPILE)objdump
-OBJCOPY = $(CROSS_COMPILE)objcopy
-
-FWFLASH = fwflash
-
-ARM_OBJECTS = $(ARM_SOURCES:%.c=%.o) $(ASM_ARM_SOURCE:%.S=%.o)
-THUMB_OBJECTS = $(THUMB_SOURCES:%.c=%.o) $(THUMB_ARM_SOURCE:%.S=%.o)
-OBJECTS = $(ARM_OBJECTS) $(THUMB_OBJECTS)
-
-all: bin
-
-elf: $(TARGET).elf
-bin: $(TARGET).bin
-sym: $(TARGET).sym
-lst: $(TARGET).lst
-
-$(TARGET).elf: THUMB = -mthumb
-$(TARGET).elf: $(OBJECTS) $(LDSCRIPT)
- $(LINK.c) $(OBJECTS) $(LOADLIBES) $(LDLIBS) -o $@
-
-%.bin: %.elf
- $(OBJCOPY) --pad-to=0x140000 --gap-fill=0xff -O binary $< $@
-
-%.sym: %.elf
- $(OBJDUMP) -h -t $< > $@
-
-%.lst: %.elf
- $(OBJDUMP) -S $< > $@
-
-$(THUMB_OBJECTS): THUMB = -mthumb
-
--include $(OBJECTS:%.o=%.d)
-
-LAST_CUSTOM_FIRMWAREVERSION=none
--include version.mak
-ifneq ($(LAST_CUSTOM_FIRMWAREVERSION),$(CUSTOM_FIRMWAREVERSION))
-.PHONY: version.mak
-version.mak:
- echo "LAST_CUSTOM_FIRMWAREVERSION = $(CUSTOM_FIRMWAREVERSION)" > $@
-endif
-
-c_ui.o: version.mak
-
-program: $(TARGET).bin
- $(FWFLASH) $(TARGET).bin
-
-clean:
- rm -f $(TARGET).elf $(TARGET).bin $(TARGET).sym $(TARGET).lst \
- $(OBJECTS) $(OBJECTS:%.o=%.d) version.mak
diff --git a/AT91SAM7S256/SAM7S256/gcc/lib/abort.c b/AT91SAM7S256/SAM7S256/gcc/lib/abort.c
deleted file mode 100644
index 26d47e7..0000000
--- a/AT91SAM7S256/SAM7S256/gcc/lib/abort.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2011 Nicolas Schodet
- *
- * 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.
- */
-
-/* Provide an abort function, could be used by various library function. */
-
-void
-abort (void)
-{
- /* Wait for ever, nothing better to do. */
- while (1)
- ;
-}
-
diff --git a/AT91SAM7S256/SAM7S256/gcc/lib/errno.c b/AT91SAM7S256/SAM7S256/gcc/lib/errno.c
deleted file mode 100644
index 3eb52ac..0000000
--- a/AT91SAM7S256/SAM7S256/gcc/lib/errno.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2010 Nicolas Schodet
- *
- * 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 is needed for libm. Provide a non thread safe errno. */
-
-static int __the_errno;
-
-int *
-__errno (void)
-{
- return &__the_errno;
-}
-
diff --git a/AT91SAM7S256/SAM7S256/gcc/lib/sbrk.c b/AT91SAM7S256/SAM7S256/gcc/lib/sbrk.c
deleted file mode 100644
index 317a94b..0000000
--- a/AT91SAM7S256/SAM7S256/gcc/lib/sbrk.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nicolas Schodet
- *
- * 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.
- */
-
-/* The newlib sprintf use dynamic allocation for floating point. Therefore,
- * the sbrk syscall should be provided.
- *
- * This works by taking memory above BSS and below stack. There is no
- * collision detection as it whould not known what to do then. */
-
-extern char _end;
-
-void *
-_sbrk (int incr)
-{
- static char *heap = 0;
- char *base;
- /* Initialise if first call. */
- if (heap == 0)
- heap = &_end;
- /* Increment and return old heap base. */
- base = heap;
- heap += incr;
- return base;
-}
-
diff --git a/AT91SAM7S256/SAM7S256/gcc/lib/sscanf.c b/AT91SAM7S256/SAM7S256/gcc/lib/sscanf.c
deleted file mode 100644
index a4f5e64..0000000
--- a/AT91SAM7S256/SAM7S256/gcc/lib/sscanf.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2010 Nicolas Schodet
- *
- * 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.
- */
-
-/* NXT source code is using sscanf to parse a float. Newlib sscanf will pull
- * too many code, so here is a stub which implement just what is used. */
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-int
-sscanf (const char *str, const char *fmt, ...)
-{
- va_list ap;
- float *f;
- char *tailptr;
- /* Only support use in NXT source code. */
- if (fmt[0] != '%' || fmt[1] != 'f' || fmt[2] != '\0')
- return 0;
- /* Retrieve float pointer. */
- va_start (ap, fmt);
- f = va_arg (ap, float *);
- va_end (ap);
- /* Parse using the nice strtod. */
- *f = strtod (str, &tailptr);
- if (str == tailptr)
- return 0;
- else
- return 1;
-}
-
diff --git a/AT91SAM7S256/SAM7S256/gcc/lib/strtod.c b/AT91SAM7S256/SAM7S256/gcc/lib/strtod.c
deleted file mode 100644
index 49d02a2..0000000
--- a/AT91SAM7S256/SAM7S256/gcc/lib/strtod.c
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
- * strtod.c --
- *
- * Source code for the "strtod" library procedure.
- *
- * Copyright (c) 1988-1993 The Regents of the University of California.
- * Copyright (c) 1994 Sun Microsystems, Inc.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The University of California
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <errno.h>
-
-#ifndef TRUE
-#define TRUE 1
-#define FALSE 0
-#endif
-#ifndef NULL
-#define NULL 0
-#endif
-
-static int maxExponent = 511; /* Largest possible base 10 exponent. Any
- * exponent larger than this will already
- * produce underflow or overflow, so there's
- * no need to worry about additional digits.
- */
-static double powersOf10[] = { /* Table giving binary powers of 10. Entry */
- 10., /* is 10^2^i. Used to convert decimal */
- 100., /* exponents into floating-point numbers. */
- 1.0e4,
- 1.0e8,
- 1.0e16,
- 1.0e32,
- 1.0e64,
- 1.0e128,
- 1.0e256
-};
-
-/*
- *----------------------------------------------------------------------
- *
- * strtod --
- *
- * This procedure converts a floating-point number from an ASCII
- * decimal representation to internal double-precision format.
- *
- * Results:
- * The return value is the double-precision floating-point
- * representation of the characters in string. If endPtr isn't
- * NULL, then *endPtr is filled in with the address of the
- * next character after the last one that was part of the
- * floating-point number.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-double
-strtod(string, endPtr)
- const char *string; /* A decimal ASCII floating-point number,
- * optionally preceded by white space.
- * Must have form "-I.FE-X", where I is the
- * integer part of the mantissa, F is the
- * fractional part of the mantissa, and X
- * is the exponent. Either of the signs
- * may be "+", "-", or omitted. Either I
- * or F may be omitted, or both. The decimal
- * point isn't necessary unless F is present.
- * The "E" may actually be an "e". E and X
- * may both be omitted (but not just one).
- */
- char **endPtr; /* If non-NULL, store terminating character's
- * address here. */
-{
- int sign, expSign = FALSE;
- double fraction, dblExp, *d;
- register const char *p;
- register int c;
- int exp = 0; /* Exponent read from "EX" field. */
- int fracExp = 0; /* Exponent that derives from the fractional
- * part. Under normal circumstatnces, it is
- * the negative of the number of digits in F.
- * However, if I is very long, the last digits
- * of I get dropped (otherwise a long I with a
- * large negative exponent could cause an
- * unnecessary overflow on I alone). In this
- * case, fracExp is incremented one for each
- * dropped digit. */
- int mantSize; /* Number of digits in mantissa. */
- int decPt; /* Number of mantissa digits BEFORE decimal
- * point. */
- const char *pExp; /* Temporarily holds location of exponent
- * in string. */
-
- /*
- * Strip off leading blanks and check for a sign.
- */
-
- p = string;
- while (isspace(*p)) {
- p += 1;
- }
- if (*p == '-') {
- sign = TRUE;
- p += 1;
- } else {
- if (*p == '+') {
- p += 1;
- }
- sign = FALSE;
- }
-
- /*
- * Count the number of digits in the mantissa (including the decimal
- * point), and also locate the decimal point.
- */
-
- decPt = -1;
- for (mantSize = 0; ; mantSize += 1)
- {
- c = *p;
- if (!isdigit(c)) {
- if ((c != '.') || (decPt >= 0)) {
- break;
- }
- decPt = mantSize;
- }
- p += 1;
- }
-
- /*
- * Now suck up the digits in the mantissa. Use two integers to
- * collect 9 digits each (this is faster than using floating-point).
- * If the mantissa has more than 18 digits, ignore the extras, since
- * they can't affect the value anyway.
- */
-
- pExp = p;
- p -= mantSize;
- if (decPt < 0) {
- decPt = mantSize;
- } else {
- mantSize -= 1; /* One of the digits was the point. */
- }
- if (mantSize > 18) {
- fracExp = decPt - 18;
- mantSize = 18;
- } else {
- fracExp = decPt - mantSize;
- }
- if (mantSize == 0) {
- fraction = 0.0;
- p = string;
- goto done;
- } else {
- int frac1, frac2;
- frac1 = 0;
- for ( ; mantSize > 9; mantSize -= 1)
- {
- c = *p;
- p += 1;
- if (c == '.') {
- c = *p;
- p += 1;
- }
- frac1 = 10*frac1 + (c - '0');
- }
- frac2 = 0;
- for (; mantSize > 0; mantSize -= 1)
- {
- c = *p;
- p += 1;
- if (c == '.') {
- c = *p;
- p += 1;
- }
- frac2 = 10*frac2 + (c - '0');
- }
- fraction = (1.0e9 * frac1) + frac2;
- }
-
- /*
- * Skim off the exponent.
- */
-
- p = pExp;
- if ((*p == 'E') || (*p == 'e')) {
- p += 1;
- if (*p == '-') {
- expSign = TRUE;
- p += 1;
- } else {
- if (*p == '+') {
- p += 1;
- }
- expSign = FALSE;
- }
- while (isdigit(*p)) {
- exp = exp * 10 + (*p - '0');
- p += 1;
- }
- }
- if (expSign) {
- exp = fracExp - exp;
- } else {
- exp = fracExp + exp;
- }
-
- /*
- * Generate a floating-point number that represents the exponent.
- * Do this by processing the exponent one bit at a time to combine
- * many powers of 2 of 10. Then combine the exponent with the
- * fraction.
- */
-
- if (exp < 0) {
- expSign = TRUE;
- exp = -exp;
- } else {
- expSign = FALSE;
- }
- if (exp > maxExponent) {
- exp = maxExponent;
- errno = ERANGE;
- }
- dblExp = 1.0;
- for (d = powersOf10; exp != 0; exp >>= 1, d += 1) {
- if (exp & 01) {
- dblExp *= *d;
- }
- }
- if (expSign) {
- fraction /= dblExp;
- } else {
- fraction *= dblExp;
- }
-
-done:
- if (endPtr != NULL) {
- *endPtr = (char *) p;
- }
-
- if (sign) {
- return -fraction;
- }
- return fraction;
-}
diff --git a/AT91SAM7S256/SAM7S256/gcc/nxt.ld b/AT91SAM7S256/SAM7S256/gcc/nxt.ld
deleted file mode 100644
index e54bc5d..0000000
--- a/AT91SAM7S256/SAM7S256/gcc/nxt.ld
+++ /dev/null
@@ -1,167 +0,0 @@
-
-MEMORY
-{
- CODE (rx) : ORIGIN = 0x00100000, LENGTH = 256k
- DATA (rwx) : ORIGIN = 0x00200000, LENGTH = 64k
-}
-
-__FIRST_IN_RAM = ORIGIN(DATA);
-__TOP_STACK = ORIGIN(DATA) + LENGTH(DATA);
-
-/* Section Definitions */
-
-SECTIONS
-{
- /* first section is .text which is used for code */
- . = ORIGIN(CODE);
-
- .text :
- {
- KEEP(*(.vectorg))
- . = ALIGN(4);
- KEEP(*(.init))
- *(.text .text.*) /* remaining code */
- *(.gnu.linkonce.t.*)
- *(.glue_7)
- *(.glue_7t)
- *(.gcc_except_table)
- *(.rodata) /* read-only data (constants) */
- *(.rodata.*)
- *(.gnu.linkonce.r.*)
- . = ALIGN(4);
- } >CODE
-
- . = ALIGN(4);
-
- /* .ctors .dtors are used for c++ constructors/destructors */
-
- .ctors :
- {
- PROVIDE(__ctors_start__ = .);
- KEEP(*(SORT(.ctors.*)))
- KEEP(*(.ctors))
- PROVIDE(__ctors_end__ = .);
- } >CODE
-
- .dtors :
- {
- PROVIDE(__dtors_start__ = .);
- KEEP(*(SORT(.dtors.*)))
- KEEP(*(.dtors))
- PROVIDE(__dtors_end__ = .);
- } >CODE
-
- __exidx_start = . ;
- .ARM.exidx :
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } >CODE
- __exidx_end = . ;
-
- . = ALIGN(4);
-
- _etext = . ;
- PROVIDE (etext = .);
-
- /* .data section which is used for initialized data */
- .data : AT (_etext)
- {
- _data = . ;
- KEEP(*(.vectmapped))
- . = ALIGN(4);
- *(.fastrun .fastrun.*)
- . = ALIGN(4);
- SORT(CONSTRUCTORS)
- . = ALIGN(4);
- *(.data)
- *(.data.*)
- *(.gnu.linkonce.d.*)
- . = ALIGN(4);
- } >DATA
-
- . = ALIGN(4);
-
- _edata = . ;
- PROVIDE (edata = .);
-
- __STARTOFUSERFLASH_FROM_LINKER =
- ALIGN (LOADADDR (.data) + SIZEOF (.data), 0x100);
-
- /*
- * The various debugger stacks.
- */
- .stack : ALIGN(8) {
- /* abort stack */
- __abort_stack_bottom__ = . ;
- KEEP(*(.stack.abort))
- __abort_stack__ = . ;
- __abort_stack_top__ = . ;
-
- /* debugger state */
- __debugger_stack_bottom__ = . ;
- KEEP(*(.stack.debugger))
- __debugger_stack__ = . ;
- __debugger_stack_top__ = . ;
-
- /* breakpoints */
- __breakpoints_start__ = . ;
- KEEP(*(.breakpoints))
- __breakpoints_end__ = . ;
- } > DATA
-
- __breakpoints_num__ = (__breakpoints_end__ - __breakpoints_start__) / 8;
-
- /* .bss section which is used for uninitialized data */
- .bss (NOLOAD) :
- {
- __bss_start = . ;
- __bss_start__ = . ;
- *(.bss)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- . = ALIGN(4);
- } >DATA
-
- . = ALIGN(4);
-
- __bss_end__ = . ;
-
- _end = .;
- PROVIDE (end = .);
-
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section so we begin them at 0. */
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
-
-}