This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
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.
vinoth s1 said:I need to know how do i make ccs linker equivalent to iar linker file.
Very few, if any, developers take such an approach. Most developers use the TI MSP430 linker command file with no modifications.
We who watch this forum have no expertise with the IAR linker, and are unable to assist. This wiki article which describes TI linker command files may be helpful.
Thanks and regards,
-George