112 lines
3.2 KiB
Text
112 lines
3.2 KiB
Text
/*
|
|
********************************************************************************
|
|
* *
|
|
* Copyright (c) 2017 Andrea Loi *
|
|
* *
|
|
* 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. *
|
|
* *
|
|
********************************************************************************
|
|
*/
|
|
|
|
|
|
|
|
/******************************************************************************/
|
|
/* DON'T EDIT THIS FILE UNLESS YOU KNOW WHAT YOU'RE DOING! */
|
|
/******************************************************************************/
|
|
|
|
|
|
|
|
_heap_size = 0x00000400;
|
|
_stack_size = 0x00000400;
|
|
|
|
_isrvectors_tend = 0x00000150;
|
|
|
|
ENTRY(ResetHandler)
|
|
|
|
MEMORY {
|
|
FLASH (RX) : ORIGIN = 0x08000000, LENGTH = 0x10000
|
|
RAM (RWX) : ORIGIN = 0x20000000, LENGTH = 0x05000
|
|
}
|
|
|
|
SECTIONS {
|
|
.isrvectors 0x08000000 :
|
|
{
|
|
_sisrvectors = .;
|
|
KEEP(*(.isrvectors))
|
|
ASSERT(. == _isrvectors_tend, "The vector table needs to be 84 elements long!");
|
|
_eisrvectors = .;
|
|
} >FLASH
|
|
|
|
.text :
|
|
{
|
|
. = ALIGN(4);
|
|
_stext = .;
|
|
*(.text*)
|
|
*(.rodata*)
|
|
. = ALIGN(4);
|
|
_etext = .;
|
|
} >FLASH
|
|
|
|
.ARM.extab :
|
|
{
|
|
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
|
} >FLASH
|
|
|
|
.ARM : {
|
|
*(.ARM.exidx*)
|
|
} >FLASH
|
|
|
|
.data :
|
|
{
|
|
. = ALIGN(4);
|
|
_sdata = .;
|
|
*(.data*)
|
|
. = ALIGN(4);
|
|
_edata = .;
|
|
} >RAM AT >FLASH
|
|
|
|
_ldata = LOADADDR(.data);
|
|
|
|
.bss :
|
|
{
|
|
. = ALIGN(4);
|
|
_sbss = .;
|
|
*(.bss*)
|
|
*(COMMON)
|
|
. = ALIGN(4);
|
|
_ebss = .;
|
|
} >RAM
|
|
|
|
._heap_trick :
|
|
{
|
|
. = ALIGN(4);
|
|
. = . + _heap_size;
|
|
. = ALIGN(4);
|
|
} >RAM
|
|
|
|
._stack_trick :
|
|
{
|
|
. = ALIGN(8);
|
|
. = . + _stack_size;
|
|
. = ALIGN(8);
|
|
} >RAM
|
|
|
|
}
|
|
|
|
|