| 1 | /****************************************************************************** | = | 1 | /****************************************************************************** |
| 2 | * | 2 | * | |
| 3 | * Copyright (C) 2012 - 2018 Texas Instruments Incorporated - http://www.ti.com/ | <> | 3 | * Copyright (C) 2012 - 2017 Texas Instruments Incorporated - http://www.ti.com/ |
| 4 | * | = | 4 | * |
| 5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without | |
| 6 | * modification, are permitted provided that the following conditions | 6 | * modification, are permitted provided that the following conditions | |
| 7 | * are met: | 7 | * are met: | |
| 8 | * | 8 | * | |
| 9 | * Redistributions of source code must retain the above copyright | 9 | * Redistributions of source code must retain the above copyright | |
| 27 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | = | 27 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 28 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 28 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
| 29 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 29 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
| 30 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 30 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
| 31 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 31 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| 32 | * | 32 | * | |
| 33 | * Default linker command file for Texas Instruments MSP430FR5043 | <> | 33 | * Default linker command file for Texas Instruments MSP430FR6043 |
| 34 | * | = | 34 | * |
| 35 | *****************************************************************************/ | 35 | *****************************************************************************/ | |
| 36 | 36 | |||
| 37 | /******************************************************************************/ | 37 | /******************************************************************************/ | |
| 38 | /* */ | 38 | /* */ | |
| 39 | /* Usage: lnk430 <obj files...> -o <out file> -m <map file> lnk.cmd */ | 39 | /* Usage: lnk430 <obj files...> -o <out file> -m <map file> lnk.cmd */ | |
| 44 | /* you should set your linker options in Project Properties */ | = | 44 | /* you should set your linker options in Project Properties */ |
| 45 | /* -c LINK USING C CONVENTIONS */ | 45 | /* -c LINK USING C CONVENTIONS */ | |
| 46 | /* -stack 0x0100 SOFTWARE STACK SIZE */ | 46 | /* -stack 0x0100 SOFTWARE STACK SIZE */ | |
| 47 | /* -heap 0x0100 HEAP AREA SIZE */ | 47 | /* -heap 0x0100 HEAP AREA SIZE */ | |
| 48 | /* */ | 48 | /* */ | |
| 49 | /*----------------------------------------------------------------------------*/ | 49 | /*----------------------------------------------------------------------------*/ | |
| 50 | /* 1.206 */ | <> | 50 | /* 1.201 (Beta-Build-Tag: #0014) */ |
| 51 | /*----------------------------------------------------------------------------*/ | = | 51 | /*----------------------------------------------------------------------------*/ |
| 52 | 52 | |||
| 53 | /****************************************************************************/ | 53 | /****************************************************************************/ | |
| 54 | /* SPECIFY THE SYSTEM MEMORY MAP */ | 54 | /* SPECIFY THE SYSTEM MEMORY MAP */ | |
| 55 | /****************************************************************************/ | 55 | /****************************************************************************/ | |
| <> | 56 | |||
| 57 | -stack 500 | |||
| 56 | = | 58 | ||
| 57 | MEMORY | 59 | MEMORY | |
| 58 | { | 60 | { | |
| 59 | TINYRAM : origin = 0xA, length = 0x16 | 61 | TINYRAM : origin = 0xA, length = 0x16 | |
| 60 | BSL : origin = 0x1000, length = 0x800 | 62 | BSL : origin = 0x1000, length = 0x800 | |
| 61 | CAL_CONF : origin = 0x1900, length = 0x100 | 63 | CAL_CONF : origin = 0x1900, length = 0x100 | |
| 62 | TLVMEM : origin = 0x1A00, length = 0x100 | 64 | TLVMEM : origin = 0x1A00, length = 0x100 | |
| 63 | BOOTROM : origin = 0x1B00, length = 0x100 | 65 | BOOTROM : origin = 0x1B00, length = 0x100 | |
| 64 | RAM : origin = 0x1C00, length = 0x1000 | 66 | RAM : origin = 0x1C00, length = 0x1000 | |
| 65 | FRAM : origin = 0x6000, length = 0x9F80 | 67 | FRAM : origin = 0x6000, length = 0x9F80 | |
| 66 | FRAM2 : origin = 0x10000,length = 0x6000 | <> | 68 | FRAM2 : origin = 0x10000,length = 0x5FF0 |
| 69 | LIB_VERSION : origin = 0x15FF0,length = 0x08 | |||
| 70 | APP_VERSION : origin = 0x15FF8,length = 0x08 | |||
| 67 | JTAGSIGNATURE : origin = 0xFF80, length = 0x0004, fill = 0xFFFF | = | 71 | JTAGSIGNATURE : origin = 0xFF80, length = 0x0004, fill = 0xFFFF |
| 68 | BSLSIGNATURE : origin = 0xFF84, length = 0x0004, fill = 0xFFFF | 72 | BSLSIGNATURE : origin = 0xFF84, length = 0x0004, fill = 0xFFFF | |
| 69 | IPESIGNATURE : origin = 0xFF88, length = 0x0008, fill = 0xFFFF | 73 | IPESIGNATURE : origin = 0xFF88, length = 0x0008, fill = 0xFFFF | |
| 70 | INT00 : origin = 0xFF90, length = 0x0002 | 74 | INT00 : origin = 0xFF90, length = 0x0002 | |
| 71 | INT01 : origin = 0xFF92, length = 0x0002 | 75 | INT01 : origin = 0xFF92, length = 0x0002 | |
| 72 | INT02 : origin = 0xFF94, length = 0x0002 | 76 | INT02 : origin = 0xFF94, length = 0x0002 | |
| 130 | /****************************************************************************/ | = | 134 | /****************************************************************************/ |
| 131 | 135 | |||
| 132 | #define LEASTACK_SIZE 0x138 | 136 | #define LEASTACK_SIZE 0x138 | |
| 133 | 137 | |||
| 134 | MEMORY | 138 | MEMORY | |
| 135 | { | 139 | { | |
| 136 | LEARAM_0 : origin = 0x4000, length = 0x1000 | <> | ||
| 137 | LEARAM : origin = 0x5000, length = 0x1000 - LEASTACK_SIZE | 140 | LEARAM : origin = 0x4000, length = 0x2000 - LEASTACK_SIZE | |
| 138 | LEASTACK : origin = 0x6000 - LEASTACK_SIZE, length = LEASTACK_SIZE | = | 141 | LEASTACK : origin = 0x6000 - LEASTACK_SIZE, length = LEASTACK_SIZE |
| 139 | } | 142 | } | |
| 140 | 143 | |||
| 141 | /****************************************************************************/ | 144 | /****************************************************************************/ | |
| 142 | /* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */ | 145 | /* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */ | |
| 143 | /****************************************************************************/ | 146 | /****************************************************************************/ | |
| 162 | .ipe : {} /* IPE */ | = | 165 | .ipe : {} /* IPE */ |
| 163 | .ipe_const : {} /* IPE Protected constants */ | 166 | .ipe_const : {} /* IPE Protected constants */ | |
| 164 | .ipe:_isr : {} /* IPE ISRs */ | 167 | .ipe:_isr : {} /* IPE ISRs */ | |
| 165 | } PALIGN(0x0400), RUN_START(fram_ipe_start) RUN_END(fram_ipe_end) RUN_END(fram_rx_start) | 168 | } PALIGN(0x0400), RUN_START(fram_ipe_start) RUN_END(fram_ipe_end) RUN_END(fram_rx_start) | |
| 166 | 169 | |||
| 167 | } > 0x6000 | 170 | } > 0x6000 | |
| -+ | 171 | |||
| 172 | .libVersion : {} > LIB_VERSION | |||
| 173 | .version : {} > APP_VERSION | |||
| 168 | = | 174 | ||
| 169 | .cinit : {} > FRAM /* Initialization tables */ | 175 | .cinit : {} > FRAM /* Initialization tables */ | |
| 170 | .binit : {} > FRAM /* Boot-time Initialization tables */ | 176 | .binit : {} > FRAM /* Boot-time Initialization tables */ | |
| 171 | .pinit : {} > FRAM /* C++ Constructor tables */ | 177 | .pinit : {} > FRAM /* C++ Constructor tables */ | |
| 172 | .init_array : {} > FRAM /* C++ Constructor tables */ | 178 | .init_array : {} > FRAM /* C++ Constructor tables */ | |
| 173 | .mspabi.exidx : {} > FRAM /* C++ Constructor tables */ | 179 | .mspabi.exidx : {} > FRAM /* C++ Constructor tables */ | |
| 174 | .mspabi.extab : {} > FRAM /* C++ Constructor tables */ | 180 | .mspabi.extab : {} > FRAM /* C++ Constructor tables */ | |
| 175 | .text:_isr : {} > FRAM /* Code ISRs */ | 181 | .text:_isr : {} > FRAM /* Code ISRs */ | |
| -+ | 182 | #ifndef __USS_RUN_ALG_FROM_RAM__ | ||
| 183 | .USS_ramfunc : {} > FRAM | |||
| 184 | #endif | |||
| 176 | = | 185 | ||
| 177 | #ifndef __LARGE_DATA_MODEL__ | 186 | #ifndef __LARGE_DATA_MODEL__ | |
| 178 | .const : {} > FRAM /* Constant data */ | 187 | .const : {} > FRAM /* Constant data */ | |
| 179 | #else | 188 | #else | |
| 180 | .const : {} >> FRAM | FRAM2 /* Constant data */ | 189 | .const : {} >> FRAM | FRAM2 /* Constant data */ | |
| 181 | #endif | 190 | #endif | |
| 193 | #else | = | 202 | #else |
| 194 | .TI.ramfunc : {} load=FRAM | FRAM2, run=RAM, table(BINIT) | 203 | .TI.ramfunc : {} load=FRAM | FRAM2, run=RAM, table(BINIT) | |
| 195 | #endif | 204 | #endif | |
| 196 | #endif | 205 | #endif | |
| 197 | #endif | 206 | #endif | |
| 198 | 207 | |||
| <> | 208 | #ifdef __USS_RUN_ALG_FROM_RAM__ | ||
| 209 | #ifdef __TI_COMPILER_VERSION__ | |||
| 210 | #if __TI_COMPILER_VERSION__ >= 15009000 | |||
| 211 | #ifndef __LARGE_DATA_MODEL__ | |||
| 212 | .USS_ramfunc : {} load=FRAM, run=RAM, table(BINIT) | |||
| 213 | #else | |||
| 214 | .USS_ramfunc : {} load=FRAM | FRAM2, run=RAM, table(BINIT) | |||
| 215 | #endif | |||
| 216 | #endif | |||
| 217 | #endif | |||
| 218 | #endif | |||
| 219 | ||||
| 199 | .jtagsignature : {} > JTAGSIGNATURE | = | 220 | .jtagsignature : {} > JTAGSIGNATURE |
| 200 | .bslsignature : {} > BSLSIGNATURE | 221 | .bslsignature : {} > BSLSIGNATURE | |
| 201 | 222 | |||
| 202 | GROUP(SIGNATURE_SHAREDMEMORY) | 223 | GROUP(SIGNATURE_SHAREDMEMORY) | |
| 203 | { | 224 | { | |
| 204 | .ipesignature : {} /* IPE Signature */ | 225 | .ipesignature : {} /* IPE Signature */ | |
| 205 | .jtagpassword : {} /* JTAG Password */ | 226 | .jtagpassword : {} /* JTAG Password */ | |
| 206 | } > IPESIGNATURE | 227 | } > IPESIGNATURE | |
| 207 | 228 | |||
| <> | 229 | #ifdef __USS_RUN_ALG_FROM_RAM__ | ||
| 230 | .bss : {} > RAM | FRAM /* Global & static vars */ | |||
| 231 | .data : {} > RAM | FRAM /* Global & static vars */ | |||
| 232 | .TI.noinit : {} > RAM | FRAM /* For #pragma noinit */ | |||
| 233 | #else | |||
| 208 | .bss : {} > RAM /* Global & static vars */ | 234 | .bss : {} > RAM /* Global & static vars */ | |
| 209 | .data : {} > RAM /* Global & static vars */ | 235 | .data : {} > RAM /* Global & static vars */ | |
| 210 | .TI.noinit : {} > RAM /* For #pragma noinit */ | 236 | .TI.noinit : {} > RAM /* For #pragma noinit */ | |
| 237 | #endif | |||
| 238 | ||||
| 239 | .ram_thrill : {} > RAM | LEARAM | |||
| 240 | ||||
| 211 | .stack : {} > RAM (HIGH) /* Software system stack */ | = | 241 | .stack : {} > RAM (HIGH) /* Software system stack */ |
| 212 | 242 | |||
| 213 | .tinyram : {} > TINYRAM /* Tiny RAM */ | 243 | .tinyram : {} > TINYRAM /* Tiny RAM */ | |
| 214 | 244 | |||
| 215 | .leaRAM : {} > LEARAM /* LEA RAM */ | <> | 245 | .leaRAM : {} >> LEARAM /* LEA RAM */ |
| 216 | .leaStack : {} > LEASTACK (HIGH) /* LEA STACK */ | = | 246 | .leaStack : {} > LEASTACK (HIGH) /* LEA STACK */ |
| 217 | 247 | |||
| 218 | /* MSP430 interrupt vectors */ | 248 | /* MSP430 interrupt vectors */ | |
| 219 | 249 | |||
| 220 | .int00 : {} > INT00 | 250 | .int00 : {} > INT00 | |
| 221 | .int01 : {} > INT01 | 251 | .int01 : {} > INT01 | |
| 245 | PORT6 : { * ( .int25 ) } > INT25 type = VECT_INIT | = | 275 | PORT6 : { * ( .int25 ) } > INT25 type = VECT_INIT |
| 246 | PORT5 : { * ( .int26 ) } > INT26 type = VECT_INIT | 276 | PORT5 : { * ( .int26 ) } > INT26 type = VECT_INIT | |
| 247 | TIMER4_A1 : { * ( .int27 ) } > INT27 type = VECT_INIT | 277 | TIMER4_A1 : { * ( .int27 ) } > INT27 type = VECT_INIT | |
| 248 | TIMER4_A0 : { * ( .int28 ) } > INT28 type = VECT_INIT | 278 | TIMER4_A0 : { * ( .int28 ) } > INT28 type = VECT_INIT | |
| 249 | AES256 : { * ( .int29 ) } > INT29 type = VECT_INIT | 279 | AES256 : { * ( .int29 ) } > INT29 type = VECT_INIT | |
| 250 | RTC_C : { * ( .int30 ) } > INT30 type = VECT_INIT | 280 | RTC_C : { * ( .int30 ) } > INT30 type = VECT_INIT | |
| 251 | .int31 : {} > INT31 | <> | 281 | LCD_C : { * ( .int31 ) } > INT31 type = VECT_INIT |
| 252 | PORT4 : { * ( .int32 ) } > INT32 type = VECT_INIT | = | 282 | PORT4 : { * ( .int32 ) } > INT32 type = VECT_INIT |
| 253 | PORT3 : { * ( .int33 ) } > INT33 type = VECT_INIT | 283 | PORT3 : { * ( .int33 ) } > INT33 type = VECT_INIT | |
| 254 | TIMER3_A1 : { * ( .int34 ) } > INT34 type = VECT_INIT | 284 | TIMER3_A1 : { * ( .int34 ) } > INT34 type = VECT_INIT | |
| 255 | TIMER3_A0 : { * ( .int35 ) } > INT35 type = VECT_INIT | 285 | TIMER3_A0 : { * ( .int35 ) } > INT35 type = VECT_INIT | |
| 256 | PORT2 : { * ( .int36 ) } > INT36 type = VECT_INIT | 286 | PORT2 : { * ( .int36 ) } > INT36 type = VECT_INIT | |
| 257 | TIMER2_A1 : { * ( .int37 ) } > INT37 type = VECT_INIT | 287 | TIMER2_A1 : { * ( .int37 ) } > INT37 type = VECT_INIT | |
| 358 | #endif | = | 388 | #endif |
| 359 | 389 | |||
| 360 | /****************************************************************************/ | 390 | /****************************************************************************/ | |
| 361 | /* INCLUDE PERIPHERALS MEMORY MAP */ | 391 | /* INCLUDE PERIPHERALS MEMORY MAP */ | |
| 362 | /****************************************************************************/ | 392 | /****************************************************************************/ | |
| 363 | 393 | |||
| 364 | -l msp430fr5043.cmd | <> | 394 | -l msp430fr6043.cmd |
| 365 | = | 395 | ||
| 366 | 396 | |||