diff options
| author | Vasil Zlatanov <v@skozl.com> | 2017-05-03 16:30:16 +0100 | 
|---|---|---|
| committer | Vasil Zlatanov <v@skozl.com> | 2017-05-03 16:30:16 +0100 | 
| commit | a6ed1742539c62186fb903017b52dd48f145ae4f (patch) | |
| tree | e9f49f0437e1f260b276b45fddcb66ea524f49e3 /ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM | |
| download | e2-switch-a6ed1742539c62186fb903017b52dd48f145ae4f.tar.gz e2-switch-a6ed1742539c62186fb903017b52dd48f145ae4f.tar.bz2 e2-switch-a6ed1742539c62186fb903017b52dd48f145ae4f.zip | |
Add template and build environment.
Diffstat (limited to 'ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM')
| -rw-r--r-- | ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/LPC1768.ld | 172 | ||||
| -rw-r--r-- | ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/board.o | bin | 0 -> 1648 bytes | |||
| -rw-r--r-- | ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/cmsis_nvic.o | bin | 0 -> 1134 bytes | |||
| -rw-r--r-- | ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/libmbed.a | bin | 0 -> 206720 bytes | |||
| -rw-r--r-- | ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/retarget.o | bin | 0 -> 9764 bytes | |||
| -rw-r--r-- | ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/startup_LPC17xx.o | bin | 0 -> 8572 bytes | |||
| -rw-r--r-- | ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/system_LPC17xx.o | bin | 0 -> 1664 bytes | 
7 files changed, 172 insertions, 0 deletions
| diff --git a/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/LPC1768.ld b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/LPC1768.ld new file mode 100644 index 0000000..9eb533b --- /dev/null +++ b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/LPC1768.ld @@ -0,0 +1,172 @@ +/* Linker script for mbed LPC1768 */
 +
 +/* Linker script to configure memory regions. */
 +MEMORY
 +{
 +  FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 512K
 +  RAM (rwx) : ORIGIN = 0x100000C8, LENGTH = (32K - 0xC8)
 +
 +  USB_RAM(rwx) : ORIGIN = 0x2007C000, LENGTH = 16K
 +  ETH_RAM(rwx) : ORIGIN = 0x20080000, LENGTH = 16K
 +}
 +
 +/* Linker script to place sections and symbol values. Should be used together
 + * with other linker script that defines memory regions FLASH and RAM.
 + * It references following symbols, which must be defined in code:
 + *   Reset_Handler : Entry of reset handler
 + * 
 + * It defines following symbols, which code can use without definition:
 + *   __exidx_start
 + *   __exidx_end
 + *   __etext
 + *   __data_start__
 + *   __preinit_array_start
 + *   __preinit_array_end
 + *   __init_array_start
 + *   __init_array_end
 + *   __fini_array_start
 + *   __fini_array_end
 + *   __data_end__
 + *   __bss_start__
 + *   __bss_end__
 + *   __end__
 + *   end
 + *   __HeapLimit
 + *   __StackLimit
 + *   __StackTop
 + *   __stack
 + */
 +ENTRY(Reset_Handler)
 +
 +SECTIONS
 +{
 +    .text :
 +    {
 +        KEEP(*(.isr_vector))
 +        *(.text*)
 +
 +        KEEP(*(.init))
 +        KEEP(*(.fini))
 +
 +        /* .ctors */
 +        *crtbegin.o(.ctors)
 +        *crtbegin?.o(.ctors)
 +        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
 +        *(SORT(.ctors.*))
 +        *(.ctors)
 +
 +        /* .dtors */
 +        *crtbegin.o(.dtors)
 +        *crtbegin?.o(.dtors)
 +        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
 +        *(SORT(.dtors.*))
 +        *(.dtors)
 +
 +        *(.rodata*)
 +
 +        KEEP(*(.eh_frame*))
 +    } > FLASH
 +
 +    .ARM.extab : 
 +    {
 +        *(.ARM.extab* .gnu.linkonce.armextab.*)
 +    } > FLASH
 +
 +    __exidx_start = .;
 +    .ARM.exidx :
 +    {
 +        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
 +    } > FLASH
 +    __exidx_end = .;
 +
 +    __etext = .;
 +        
 +    .data : AT (__etext)
 +    {
 +        __data_start__ = .;
 +        Image$$RW_IRAM1$$Base = .;
 +        *(vtable)
 +        *(.data*)
 +
 +        . = ALIGN(4);
 +        /* preinit data */
 +        PROVIDE (__preinit_array_start = .);
 +        KEEP(*(.preinit_array))
 +        PROVIDE (__preinit_array_end = .);
 +
 +        . = ALIGN(4);
 +        /* init data */
 +        PROVIDE (__init_array_start = .);
 +        KEEP(*(SORT(.init_array.*)))
 +        KEEP(*(.init_array))
 +        PROVIDE (__init_array_end = .);
 +
 +
 +        . = ALIGN(4);
 +        /* finit data */
 +        PROVIDE (__fini_array_start = .);
 +        KEEP(*(SORT(.fini_array.*)))
 +        KEEP(*(.fini_array))
 +        PROVIDE (__fini_array_end = .);
 +
 +        . = ALIGN(4);
 +        /* All data end */
 +        __data_end__ = .;
 +
 +    } > RAM
 +
 +    
 +    .bss :
 +    {
 +        __bss_start__ = .;
 +        *(.bss*)
 +        *(COMMON)
 +        __bss_end__ = .;
 +        Image$$RW_IRAM1$$ZI$$Limit = . ;
 +    } > RAM
 +
 +    
 +    .heap :
 +    {
 +        __end__ = .;
 +        end = __end__;
 +        *(.heap*)
 +        __HeapLimit = .;
 +    } > RAM
 +
 +    /* .stack_dummy section doesn't contains any symbols. It is only
 +     * used for linker to calculate size of stack sections, and assign
 +     * values to stack symbols later */
 +    .stack_dummy :
 +    {
 +        *(.stack)
 +    } > RAM
 +
 +    /* Set stack top to end of RAM, and stack limit move down by
 +     * size of stack_dummy section */
 +    __StackTop = ORIGIN(RAM) + LENGTH(RAM);
 +    __StackLimit = __StackTop - SIZEOF(.stack_dummy);
 +    PROVIDE(__stack = __StackTop);
 +    
 +    /* Check if data + heap + stack exceeds RAM limit */
 +    ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
 +
 +
 +    /* Code can explicitly ask for data to be 
 +       placed in these higher RAM banks where
 +       they will be left uninitialized. 
 +    */
 +    .AHBSRAM0 (NOLOAD):
 +    {
 +        Image$$RW_IRAM2$$Base = . ;
 +        *(AHBSRAM0)
 +        Image$$RW_IRAM2$$ZI$$Limit = .;
 +    } > USB_RAM
 +
 +    .AHBSRAM1 (NOLOAD):
 +    {
 +        Image$$RW_IRAM3$$Base = . ;
 +        *(AHBSRAM1)
 +        Image$$RW_IRAM3$$ZI$$Limit = .;
 +    } > ETH_RAM
 +}
 diff --git a/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/board.o b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/board.oBinary files differ new file mode 100644 index 0000000..10bfb72 --- /dev/null +++ b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/board.o diff --git a/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/cmsis_nvic.o b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/cmsis_nvic.oBinary files differ new file mode 100644 index 0000000..6c01b27 --- /dev/null +++ b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/cmsis_nvic.o diff --git a/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/libmbed.a b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/libmbed.aBinary files differ new file mode 100644 index 0000000..a2059e0 --- /dev/null +++ b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/libmbed.a diff --git a/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/retarget.o b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/retarget.oBinary files differ new file mode 100644 index 0000000..701050f --- /dev/null +++ b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/retarget.o diff --git a/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/startup_LPC17xx.o b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/startup_LPC17xx.oBinary files differ new file mode 100644 index 0000000..2a13253 --- /dev/null +++ b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/startup_LPC17xx.o diff --git a/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/system_LPC17xx.o b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/system_LPC17xx.oBinary files differ new file mode 100644 index 0000000..b444203 --- /dev/null +++ b/ext/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/system_LPC17xx.o | 
