// ************************************************ // // XLINK configuration file for MSP430FR6989 // // Copyright 1996-2015 IAR Systems AB. // // See the file 430/doc/licenses/IARSourceLicense.txt for detailed // license information. // // $Revision: 13028 $ // // ************************************************ // --------------------------------------------------------- // Description // // // Usage: // // xlink [file file ...] -f lnk430fr6989.xcl // // ----------------------------------------------- // Device summary // // // Core: MSP430Xv2 // // Interrupt vectors: 56 // // Signature memory: 16 Bytes // // JTAG Signature memory: 4 Bytes // // BSL Signature memory: 4 Bytes // // IPE Signature memory: 8 Bytes // // Peripheral units: 00100-00FFF // // Information memory (FRAM): 01800-019FF // // Read/write memory (RAM): 01C00-023FF // // Read/write memory (TINYRAM): 00006-0001F // // Persistent memory (FRAM): 04400-0FFFF // 10000-23FFF // // ----------------------------------------------- // Segments // // ------------------------------------- // Data read/write segments // // // The following segments are available for both // the DATA16 and DATA20 segment groups. // // segment Usage // ------- -------------------------- // DATA_Z Data initialized to zero // DATA_I Data initialized by copying from DATA_ID // DATA_N Data defined using __no_init // DATA_P Data defined using __persistent // DATA_HEAP The heap used by 'malloc' and 'free' // // segment Usage // ------- -------------------------- // CSTACK Runtime stack // TLS16_I Thread-local storage for main thread // // ------------------------------------- // Program and data read-only segments // // // The following segments are available for both // the DATA16 and DATA20 segment groups. // // segment Usage // ------- -------------------------- // DATA_C Constant data, including string literals // DATA_ID Initializers for DATA_I // // segment Usage // ------- -------------------------- // 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 // SIGNATURE Signature memory // JTAGSIGNATURE JTAG Signature memory // BSLSIGNATURE BSL Signature memory // IPESIGNATURE IPE Signature memory // INTVEC Interrupt vectors // RESET The reset vector // TLS16_ID Thread-local initializers for main thread // MPU_B Memory Protection Unit border // IPE_B Intellectual Property Encapsulation border // IPECODE16 IPE code // IPEDATA16_C IPE constant data // // Notes: // // * The segments CSTART, ISR_CODE, and DIFUNCT, as well as the segments in // the DATA16 and TLS16 segment groups must be placed in in the range // 0000-FFFD. // // * 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. // // * To use the Memory Protection Unit, the symbol ?mpu2_init should be // included in the application. The symbol '__iar_430_MPU_base' should be // defined to the location of the MPU peripheral registers, and the // registers '__iar_430_MPUSAM_value' and '__iar_430_MPUCTL0_value' to // the value the registers MPUSAM and MPUCTL0 should be initialized to, // respectively. // // * To include Intellectual Property Encapsulation (IPE), the library // label '__iar_430_ipe_signature' must be included in the application. // (One way to do this is to use the -g XLINK command-line option.) The // symbol '__iar_430_MPUIPC0_value' must be defined to the value the // MPUIPC0 register should be initialized to. // // * To include custom segments in the Intellectual Property Encapsulation // (IPE) area, place them between the segments IPE_B1 and IPE_B2. // // --------------------------------------------------------- // Configuation // // ----------------------------------------------- // Stack and heap sizes // // Uncomment for command line use //-D_STACK_SIZE=160 //-D_DATA16_HEAP_SIZE=160 //-D_DATA20_HEAP_SIZE=160 //-g?mpu2_init //-g__iar_430_ipe_signature // ----------------------------------------------- // Define cpu // -cmsp430 // ----------------------------------------------- // Support for placing functions in read/write memory // -QCODE_I=CODE_ID // ----------------------------------------------- // Support for thread local storage // -QTLS16_I=TLS16_ID // ----------------------------------------------- // Hardware multiplier location // -D__iar_HWMUL=4C0 // --------------------------------------------------------- // Placement directives // // ----------------------------------------------- // Information memory // -Z(CONST)INFO=1800-19FF -Z(CONST)INFOA=1980-19FF -Z(CONST)INFOB=1900-197F -Z(CONST)INFOC=1880-18FF -Z(CONST)INFOD=1800-187F // ----------------------------------------------- // RAM memory // -Z(DATA)TINYRAM=0006-001F -Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I=1C00-23FF,10040-23FFF -Z(DATA)CODE_I -Z(DATA)DATA20_I,DATA20_Z,DATA20_N -Z(DATA)CSTACK+_STACK_SIZE# // ----------------------------------------------- // FRAM memory // // ------------------------------------- // Low memory 0-0FFFF // // --------------------------- // Read/write data in FRAM // -Z(CONST)DATA16_P,DATA20_P=4400-FF7F -Z(DATA)DATA16_HEAP+_DATA16_HEAP_SIZE -Z(DATA)DATA20_HEAP+_DATA20_HEAP_SIZE // --------------------------- // Memory Protection Unit (MPU) border // -Z(CONST)MPU_B1 // --------------------------- // Intellectual Property Encapsulation (IPE) // -Z(CONST)IPE_B1=4400-FF7F -Z(DATA)IPEDATA16_N -Z(CODE)IPECODE16 -Z(CONST)IPEDATA16_C,IPE_B2 // --------------------------- // Memory Protection Unit (MPU) border // -Z(CONST)MPU_B2 // --------------------------- // Constant data // -Z(CONST)DATA16_C,DATA16_ID,TLS16_ID,DIFUNCT,CHECKSUM=4400-FF7F // --------------------------- // Code // -Z(CODE)CSTART,ISR_CODE,CODE16=4400-FF7F // ------------------------------------- // All memory 0-FFFFF // // --------------------------- // Code // -P(CODE)CODE=4400-FF7F -Z(CODE)CODE_PAD // --------------------------- // Constant data // -Z(CONST)DATA20_C,DATA20_ID,CODE_ID=4400-FF7F // ------------------------------------- // Signature memory and interrupt vectors // -Z(CONST)SIGNATURE=FF80-FF8F -Z(CONST)JTAGSIGNATURE=FF80-FF83 -Z(CONST)BSLSIGNATURE=FF84-FF87 -Z(CONST)IPESIGNATURE=FF88-FF8F -Z(CODE)INTVEC=FF90-FFFF -Z(CODE)RESET=FFFE-FFFF