I need to porting IAR Linker data to Code composer studio.5.5.0 Linker
The source code(msp430f2410) is building fine with IAR.
Below are the Linker files source code of IAR and CCS.
================
IAR Linker code
================
// ************************************************ // // XLINK configuration file for MSP430F2410 // // Copyright 1996-2010 IAR Systems AB // // $Revision: 1.1 $ // // ************************************************ // --------------------------------------------------------- // Description // // // Usage: // // xlink [file file ...] -f lnk430f2410.xcl // // ----------------------------------------------- // Device summary // // // Core: MSP430 // // Interrupt vectors: 32 (16 unused) // // Peripheral units: 0-01FF // // Information memory (FLASH): 1000-10FF // // Read/write memory (RAM): 1100-20FF // // Read-only memory (FLASH): 2100-FFFF // -Unused 2100-21FF // -Interval Data 2200-32FF (Must be on a segment boundary) // -Security Keys 3300-34FF // -Code 3500-FFDD (FFC0-FFDD unused interrupt vectors) // -BSL Security Key FFDE-FFDF // -Interrupt Vectors FFE0-FFFF // // ----------------------------------------------- // Segments // // ------------------------------------- // Data read/write segments (RAM) // // // segment Usage // ------- -------------------------- // DATA16_Z Data initialized to zero // DATA16_I Data initialized by copying from DATA16_ID // DATA16_N Data defined using __no_init // DATA16_HEAP The heap used by 'malloc' and 'free' // CSTACK Runtime stack // TLS16_I Thread-local storage for main thread // (require custom runtime library) // // ------------------------------------- // Program and data read-only segments (FLASH) // // // segment Usage // ------- -------------------------- // DATA16_C Constant data, including string literals // DATA16_ID initializers for DATA<nn>_I // INFO Information memory // INFOA Information memory, bank A // INFOB Information memory, bank B // INFOC Information memory, bank C // INFOD Information memory, bank D // CSTART Program startup code // CODE Program code // ISR_CODE Program code for interrupt service routines // DIFUNCT Dynamic initialization vector used by C++ // CHECKSUM Checksum byte(s) generated by the -J option // INTVEC Interrupt vectors // RESET The reset vector // TLS16_ID Thread-local initializers for main thread // (require custom runtime library) // // Notes: // // * The INFOx and INFO segments overlap, this allows data either to be // placed in a specific bank or anywhere in the info memory. // // * The INTVEC and RESET segments overlap. This allows an application to // either use the reset vector provided by the runtime library, or // provide a reset function by defining an interrupt function associated // with the reset vector. // // --------------------------------------------------------- // Configuation // // ----------------------------------------------- // Stack and heap sizes // // Uncomment for command line use -D_STACK_SIZE=350 -D_DATA16_HEAP_SIZE=0 // ----------------------------------------------- // Define cpu // -cmsp430 // --------------------------------------------------------- // Placement directives // // ----------------------------------------------- // Read/write memory // -Z(CONST)DATA16_P=1100-20FF -Z(DATA)DATA16_I,DATA16_Z,DATA16_N,DATA16_HEAP+_DATA16_HEAP_SIZE=1100-20FF -Z(DATA)CSTACK+_STACK_SIZE# // ----------------------------------------------- // Read-only memory // // ------------------------------------- // Information memory // -Z(CONST)INFO=1000-10FF -Z(CONST)INFOA=10C0-10FF -Z(CONST)INFOB=1080-10BF -Z(CONST)INFOC=1040-107F -Z(CONST)INFOD=1000-103F // --------------------------------------------------------- // Interval Data // --------------------------------------------------------- -Z(CODE)IDR_SEGS=2200-33FF // --------------------------------------------------------- // Security Keys // --------------------------------------------------------- -Z(CODE)SEC_KEY_SEG=3400-35FF // ------------------------------------- // Constant data // -P(CONST)DATA16_C,DATA16_ID,TLS16_ID,DIFUNCT,CHECKSUM=2100-21FF,3600-FFDD // ------------------------------------- // Code // -Z(CODE)CSTART,ISR_CODE,CODE_ID=2100-21FF,3600-FFDD -P(CODE)CODE=2100-21FF,3600-FFDD // ------------------------------------- // BSL Security Key -Z(CODE)BSLSKEY=FFDE-FFDF // ------------------------------------- // Interrupt vectors (FFC0-FFDF not used) // -Z(CODE)INTVEC=FFE0-FFFF -Z(CODE)RESET=FFFE-FFFF
======================
CCS Linker code
=======================
/* ============================================================================ */ /* Copyright (c) 2013, Texas Instruments Incorporated */ /* All rights reserved. */ /* */ /* 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. */ /* ============================================================================ */ /******************************************************************************/ /* lnk_msp430f2410.cmd - LINKER COMMAND FILE FOR LINKING MSP430F2410 PROGRAMS */ /* */ /* Usage: lnk430 <obj files...> -o <out file> -m <map file> lnk.cmd */ /* cl430 <src files...> -z -o <out file> -m <map file> lnk.cmd */ /* */ /*----------------------------------------------------------------------------*/ /* These linker options are for command line linking only. For IDE linking, */ /* you should set your linker options in Project Properties */ /* -c LINK USING C CONVENTIONS */ /* -stack 0x0100 SOFTWARE STACK SIZE */ /* -heap 0x0100 HEAP AREA SIZE */ /* */ /*----------------------------------------------------------------------------*/ /****************************************************************************/ /* SPECIFY THE SYSTEM MEMORY MAP */ /****************************************************************************/ MEMORY { SFR : origin = 0x0000, length = 0x0010 PERIPHERALS_8BIT : origin = 0x0010, length = 0x00F0 PERIPHERALS_16BIT : origin = 0x0100, length = 0x0100 RAM : origin = 0x1100, length = 0x1000 INFOA : origin = 0x10C0, length = 0x0040 INFOB : origin = 0x1080, length = 0x0040 INFOC : origin = 0x1040, length = 0x0040 INFOD : origin = 0x1000, length = 0x0040 FLASH : origin = 0x2100, length = 0xDEBE INT00 : origin = 0xFFC0, length = 0x0002 INT01 : origin = 0xFFC2, length = 0x0002 INT02 : origin = 0xFFC4, length = 0x0002 INT03 : origin = 0xFFC6, length = 0x0002 INT04 : origin = 0xFFC8, length = 0x0002 INT05 : origin = 0xFFCA, length = 0x0002 INT06 : origin = 0xFFCC, length = 0x0002 INT07 : origin = 0xFFCE, length = 0x0002 INT08 : origin = 0xFFD0, length = 0x0002 INT09 : origin = 0xFFD2, length = 0x0002 INT10 : origin = 0xFFD4, length = 0x0002 INT11 : origin = 0xFFD6, length = 0x0002 INT12 : origin = 0xFFD8, length = 0x0002 INT13 : origin = 0xFFDA, length = 0x0002 INT14 : origin = 0xFFDC, length = 0x0002 INT15 : origin = 0xFFDE, length = 0x0002 INT16 : origin = 0xFFE0, length = 0x0002 INT17 : origin = 0xFFE2, length = 0x0002 INT18 : origin = 0xFFE4, length = 0x0002 INT19 : origin = 0xFFE6, length = 0x0002 INT20 : origin = 0xFFE8, length = 0x0002 INT21 : origin = 0xFFEA, length = 0x0002 INT22 : origin = 0xFFEC, length = 0x0002 INT23 : origin = 0xFFEE, length = 0x0002 INT24 : origin = 0xFFF0, length = 0x0002 INT25 : origin = 0xFFF2, length = 0x0002 INT26 : origin = 0xFFF4, length = 0x0002 INT27 : origin = 0xFFF6, length = 0x0002 INT28 : origin = 0xFFF8, length = 0x0002 INT29 : origin = 0xFFFA, length = 0x0002 INT30 : origin = 0xFFFC, length = 0x0002 RESET : origin = 0xFFFE, length = 0x0002 } /****************************************************************************/ /* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */ /****************************************************************************/ SECTIONS { .bss : {} > RAM /* GLOBAL & STATIC VARS */ .data : {} > RAM /* GLOBAL & STATIC VARS */ .sysmem : {} > RAM /* DYNAMIC MEMORY ALLOCATION AREA */ .stack : {} > RAM (HIGH) /* SOFTWARE SYSTEM STACK */ .text : {} > FLASH /* CODE */ .cinit : {} > FLASH /* INITIALIZATION TABLES */ .const : {} > FLASH /* CONSTANT DATA */ .cio : {} > RAM /* C I/O BUFFER */ .pinit : {} > FLASH /* C++ CONSTRUCTOR TABLES */ .init_array : {} > FLASH /* C++ CONSTRUCTOR TABLES */ .mspabi.exidx : {} > FLASH /* C++ CONSTRUCTOR TABLES */ .mspabi.extab : {} > FLASH /* C++ CONSTRUCTOR TABLES */ .infoA : {} > INFOA /* MSP430 INFO FLASH MEMORY SEGMENTS */ .infoB : {} > INFOB .infoC : {} > INFOC .infoD : {} > INFOD /* MSP430 INTERRUPT VECTORS */ RESERVED0 : { * ( .int00 ) } > INT00 type = VECT_INIT RESERVED1 : { * ( .int01 ) } > INT01 type = VECT_INIT RESERVED2 : { * ( .int02 ) } > INT02 type = VECT_INIT RESERVED3 : { * ( .int03 ) } > INT03 type = VECT_INIT RESERVED4 : { * ( .int04 ) } > INT04 type = VECT_INIT RESERVED5 : { * ( .int05 ) } > INT05 type = VECT_INIT RESERVED6 : { * ( .int06 ) } > INT06 type = VECT_INIT RESERVED7 : { * ( .int07 ) } > INT07 type = VECT_INIT RESERVED8 : { * ( .int08 ) } > INT08 type = VECT_INIT RESERVED9 : { * ( .int09 ) } > INT09 type = VECT_INIT RESERVED10 : { * ( .int10 ) } > INT10 type = VECT_INIT RESERVED11 : { * ( .int11 ) } > INT11 type = VECT_INIT RESERVED12 : { * ( .int12 ) } > INT12 type = VECT_INIT RESERVED13 : { * ( .int13 ) } > INT13 type = VECT_INIT RESERVED14 : { * ( .int14 ) } > INT14 type = VECT_INIT RESERVED15 : { * ( .int15 ) } > INT15 type = VECT_INIT USCIAB1TX : { * ( .int16 ) } > INT16 type = VECT_INIT USCIAB1RX : { * ( .int17 ) } > INT17 type = VECT_INIT PORT1 : { * ( .int18 ) } > INT18 type = VECT_INIT PORT2 : { * ( .int19 ) } > INT19 type = VECT_INIT RESERVED20 : { * ( .int20 ) } > INT20 type = VECT_INIT ADC12 : { * ( .int21 ) } > INT21 type = VECT_INIT USCIAB0TX : { * ( .int22 ) } > INT22 type = VECT_INIT USCIAB0RX : { * ( .int23 ) } > INT23 type = VECT_INIT TIMERA1 : { * ( .int24 ) } > INT24 type = VECT_INIT TIMERA0 : { * ( .int25 ) } > INT25 type = VECT_INIT WDT : { * ( .int26 ) } > INT26 type = VECT_INIT COMPARATORA : { * ( .int27 ) } > INT27 type = VECT_INIT TIMERB1 : { * ( .int28 ) } > INT28 type = VECT_INIT TIMERB0 : { * ( .int29 ) } > INT29 type = VECT_INIT NMI : { * ( .int30 ) } > INT30 type = VECT_INIT .reset : {} > RESET /* MSP430 RESET VECTOR */ } /****************************************************************************/ /* INCLUDE PERIPHERALS MEMORY MAP */ /****************************************************************************/ -l msp430f2410.cmd
There are few memory segments present in IAR(IDR_SEGS,SEC_KEY_SEG,BSLSKEY ->application specific).
I need to know how do i make ccs linker equivalent to iar linker file.