// ************************************************ // // XLINK configuration file for MSP430G2553 // // Copyright 1996-2010 IAR Systems AB // // $Revision: 7539 $ // // ************************************************ // --------------------------------------------------------- // Description // // // Usage: // // xlink [file file ...] -f lnk430g2553.xcl // // ----------------------------------------------- // Device summary // // // Core: MSP430 // // Interrupt vectors: 16 // // Peripheral units: 0-01FF // // Information memory (FLASH): 1000-10FF // // Read/write memory (RAM): 0200-03FF // // Read-only memory (FLASH): C000-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 // // ------------------------------------- // Program and data read-only segments (FLASH) // // // segment Usage // ------- -------------------------- // DATA16_C Constant data, including string literals // DATA16_ID initializers for DATA_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 // // 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=80 -D_DATA16_HEAP_SIZE=80 // ----------------------------------------------- // Define cpu // -cmsp430 // ----------------------------------------------- // Support for placing functions in read/write memory // -QCODE_I=CODE_ID // --------------------------------------------------------- // Placement directives // // ----------------------------------------------- // Read/write memory // -Z(DATA)DATA16_I,DATA16_Z,DATA16_N,DATA16_HEAP+_DATA16_HEAP_SIZE=0200-03FF -Z(DATA)CODE_I -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 // ------------------------------------- // Constant data // -Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=C000-FDFF // ------------------------------------- // Code // -Z(CODE)TESTSTART,ISR_CODE,CODE_ID=C000-D800 // Anfang muss auf ganzen Kacheln sein ($200=&512) // sonst geht das WIPE schief! mk // USERFLASHEND passend definieren! //-P(CODE)CODE=E000-FFDF //-P(CODE)CODE=DE00-FDFF //-P(CODE)CODE=DC00-FDFF //-P(CODE)CODE=DA00-FDFF -P(CODE)CODE=D800-FDFF //-P(CODE)CODE=D600-FDFF //-P(CODE)CODE=D400-FDFF //-P(CODE)CODE=D200-FDFF //-P(CODE)CODE=D000-FDFF // ------------------------------------- // Interrupt vectors // use complete upper flash segmet (512 bytes) -Z(CODE)INTSEG=FE00-FFFF -Z(CODE)INTVEC=FFE0-FFFF -Z(CODE)RESET=FFFE-FFFF