| // ************************************************ | |
| // | |
| // XLINK configuration file for MSP430F5438A | |
| // | |
| // Copyright 1996-2010 IAR Systems AB | |
| // | |
| // $Revision: $ | |
| // | |
| // ************************************************ | |
| // --------------------------------------------------------- | |
| // Description | |
| // | |
| // | |
| // Usage: | |
| // | |
| // xlink [file file ...] -f lnk430f5438a.xcl | |
| // | |
| // ----------------------------------------------- | |
| // Device summary | |
| // | |
| // | |
| // Core: MSP430X | |
| // | |
| // Interrupt vectors: 64 | |
| // | |
| // Peripheral units: 0-001FF | |
| // | |
| // Information memory (FLASH): 01800-019FF | |
| // | |
| // Read/write memory (RAM): 01C00-05BFF | |
| // | |
| // Read-only memory (FLASH): 05C00-0FFFF | |
| // 10000-45BFF | |
| // | |
| // ----------------------------------------------- | |
| // Segments | |
| // | |
| // ------------------------------------- | |
| // Data read/write segments (RAM) | |
| // | |
| // | |
| // The following segments are available for both | |
| // the DATA16 and DATA20 segment groups. | |
| // | |
| // segment Usage | |
| // ------- -------------------------- | |
| // DATA<nn>_Z Data initialized to zero | |
| // DATA<nn>_I Data initialized by copying from DATA<nn>_ID | |
| // DATA<nn>_N Data defined using __no_init | |
| // DATA<nn>_HEAP The heap used by 'malloc' and 'free' | |
| // | |
| // segment Usage | |
| // ------- -------------------------- | |
| // CSTACK Runtime stack | |
| // | |
| // ------------------------------------- | |
| // Program and data read-only segments (FLASH) | |
| // | |
| // | |
| // The following segments are available for both | |
| // the DATA16 and DATA20 segment groups. | |
| // | |
| // segment Usage | |
| // ------- -------------------------- | |
| // DATA<nn>_C Constant data, including string literals | |
| // DATA<nn>_ID initializers for DATA<nn>_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 | |
| // INTVEC Interrupt vectors | |
| // RESET The reset vector | |
| // | |
| // Notes: | |
| // | |
| // * The segments CSTART, ISR_CODE, and DIFUNCT, as well as the segments in | |
| // the DATA16 segment group 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. | |
| // | |
| // --------------------------------------------------------- | |
| // Configuation | |
| // | |
| // ----------------------------------------------- | |
| // Stack and heap sizes | |
| // | |
| // Uncomment for command line use | |
| //-D_STACK_SIZE=80 | |
| //-D_DATA16_HEAP_SIZE=80 | |
| //-D_DATA20_HEAP_SIZE=80 | |
| // ----------------------------------------------- | |
| // Define cpu | |
| // | |
| -cmsp430 | |
| // ----------------------------------------------- | |
| // Support for placing functions in read/write memory | |
| // | |
| -QCODE_I=CODE_ID | |
| // --------------------------------------------------------- | |
| // Placement directives | |
| // | |
| // ----------------------------------------------- | |
| // Read/write memory | |
| // | |
| /* Commented out and substituted the original memory region definition */ | |
| /* for RAM to reserve the memory region from 0x2000 to 0x2021 as it is */ | |
| /* used during active mode Icc tests in "5xx_ACTIVE_test.asm" */ | |
| -Z(DATA)DATA16_I,DATA16_Z,DATA16_N,DATA16_HEAP+_DATA16_HEAP_SIZE=1C00-5BFF | |
| //-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,DATA16_HEAP+_DATA16_HEAP_SIZE=1C00-2000,2022-5BFF | |
| -Z(DATA)CODE_I | |
| -Z(DATA)DATA20_I,DATA20_Z,DATA20_N,DATA20_HEAP+_DATA20_HEAP_SIZE | |
| -Z(DATA)CSTACK+_STACK_SIZE# | |
| // ----------------------------------------------- | |
| // Read-only memory | |
| // | |
| // ------------------------------------- | |
| // 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 | |
| // ------------------------------------- | |
| // Low memory 0-0FFFF | |
| // | |
| // --------------------------- | |
| // Code | |
| // | |
| -Z(CODE)CSTART,ISR_CODE=5C00-FF7F | |
| // --------------------------- | |
| // Constant data | |
| // | |
| -Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=5C00-FF7F | |
| // ------------------------------------- | |
| // All memory 0-FFFFF | |
| // | |
| // --------------------------- | |
| // Code | |
| // | |
| // Can be modified to test the use of high memory. | |
| // Original code | |
| -P(CODE)CODE=5C00-FF7F,10000-45BFF | |
| // Modified code | |
| //-P(CODE)CODE=10000-45BFF | |
| -Z(CODE)CODE_ID | |
| // --------------------------- | |
| // Constant data | |
| // | |
| // *** Modified to place code in high memory and insodoing, testing the port. | |
| // Original code | |
| -Z(CONST)DATA20_C,DATA20_ID=5C00-FF7F,10000-45BFF | |
| // Modified code | |
| //-Z(CONST)DATA20_C,DATA20_ID=10000-45BFF | |
| // ------------------------------------- | |
| // Interrupt vectors | |
| // | |
| -Z(CODE)INTVEC=FF80-FFFF | |
| -Z(CODE)RESET=FFFE-FFFF |