/******************************************************************************
*
* Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*  Redistributions of source code must retain the above copyright
*  notice, this list of conditions and the following disclaimer.
*
*  Redistributions in binary form must reproduce the above copyright
*  notice, this list of conditions and the following disclaimer in the
*  documentation and/or other materials provided with the
*  distribution.
*
*  Neither the name of Texas Instruments Incorporated nor the names of
*  its contributors may be used to endorse or promote products derived
*  from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
 *****************************************************************************/
/* Suppress warnings and errors:                                            */
/* #10199-D CRC table operator (crc_table_for_<>) ignored:
    CRC table operator cannot be associated with empty output section       */
--diag_suppress=10199

--retain=interruptVectors

MEMORY
{
    FLASH (RX) : origin = 0x00000000, length = 0x00100000
    SRAM (RWX) : origin = 0x20000000, length = 0x00040000
}

/* The following command line options are set as part of the CCS project.    */
/* If you are building using the command line, or for some reason want to    */
/* define them here, you can uncomment and modify these lines as needed.     */
/* If you are using CCS for building, it is probably better to make any such */
/* modifications in your CCS project and leave this file alone.              */
/*                                                                           */
/* --heap_size=0                                                             */
/* --stack_size=256                                                          */
/* --library=rtsv7M4_T_le_eabi.lib                                           */

/* Section allocation in memory */

SECTIONS
{
#ifndef gen_crc_table
    .intvecs:   > 0x00000000
    .text   :   > FLASH
    .const  :   > FLASH
    .cinit  :   > FLASH
    .pinit  :   > FLASH
	.rodata :   > FLASH
    .init_array : > FLASH
    .binit        : {}  > FLASH
#else
    .intvecs:   > 0x00000000, crc_table(crc_table_for_intvecs)
    .text   :   > FLASH, crc_table(crc_table_for_text)
    .const  :   > FLASH, crc_table(crc_table_for_const)
    .cinit  :   > FLASH, crc_table(crc_table_for_cinit)
    .pinit  :   > FLASH, crc_table(crc_table_for_pinit)
	.rodata : 	> FLASH, crc_table(crc_table_for_pinit)
    .init_array : > FLASH, crc_table(crc_table_for_init_array)
    .TI.crctab  : > FLASH
    .binit        : {}  > FLASH, crc_table(crc_table_for_binit)
#endif

    .vtable :   > 0x20000000
    .data   :   > SRAM
    .bss    :   > SRAM
    .sysmem :   > SRAM
    .stack  :   > SRAM
#ifdef CODE_IN_SRAM
    .TI.ramfunc :
    {
    	clock.obj(.text)
    	core_list_join.obj(.text)
    	core_main.obj(.text)
    	core_matrix.obj(.text)
    	core_portme.obj(.text)
    	core_state.obj(.text)
    	core_util.obj(.text)
    	rtsv7M4_T_le_v4SPD16_eabi.lib<ull_div_t2.asm.obj>(.text)
    	rtsv7M4_T_le_v4SPD16_eabi.lib<div0.asm.obj>(.text)
    	rtsv7M4_T_le_v4SPD16_eabi.lib<ll_mul_t2.asm.obj>(.text)
    	rtsv7M4_T_le_v4SPD16_eabi.lib<fd_cmp_t2.asm.obj>(.text)
    	rtsv7M4_T_le_v4SPD16_eabi.lib<fd_tou_t2.asm.obj>(.text)
    	rtsv7M4_T_le_v4SPD16_eabi.lib<fd_div_t2.asm.obj>(.text)
    	rtsv7M4_T_le_v4SPD16_eabi.lib<u_tofd_t2.asm.obj>(.text)
    } load=FLASH, run=SRAM, table(BINIT)
#endif
}

__STACK_TOP = __stack + 512;
