/* ============================================================================ */ /* Copyright (c) 2016, 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_msp430f6736.cmd - LINKER COMMAND FILE FOR LINKING MSP430F6736 PROGRAMS */ /* */ /* Usage: lnk430 -o -m lnk.cmd */ /* cl430 -z -o -m 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 */ /* */ /*----------------------------------------------------------------------------*/ /* Version: 1.192 */ /*----------------------------------------------------------------------------*/ /****************************************************************************/ /* Specify the system memory map */ /****************************************************************************/ APP_START = 0x4000; APP_END = 0xFEDD; // ~48Kbytes BOOT_START = 0xFEDE; BOOT_END = 0x12000; MEMORY { SFR : origin = 0x0000, length = 0x0010 PERIPHERALS_8BIT : origin = 0x0010, length = 0x00F0 PERIPHERALS_16BIT : origin = 0x0100, length = 0x0100 RAM : origin = 0x1C00, length = 0x2000 INFOA : origin = 0x1980, length = 0x0080 INFOB : origin = 0x1900, length = 0x0080 INFOC : origin = 0x1880, length = 0x0080 INFOD : origin = 0x1800, length = 0x0080 A_INT00 : origin = 0x4000, length = 0x0002 A_INT01 : origin = 0x4002, length = 0x0002 A_INT02 : origin = 0x4004, length = 0x0002 A_INT03 : origin = 0x4006, length = 0x0002 A_INT04 : origin = 0x4008, length = 0x0002 A_INT05 : origin = 0x400A, length = 0x0002 A_INT06 : origin = 0x400C, length = 0x0002 A_INT07 : origin = 0x400E, length = 0x0002 A_INT08 : origin = 0x4010, length = 0x0002 A_INT09 : origin = 0x4012, length = 0x0002 A_INT10 : origin = 0x4014, length = 0x0002 A_INT11 : origin = 0x4016, length = 0x0002 A_INT12 : origin = 0x4018, length = 0x0002 A_INT13 : origin = 0x401A, length = 0x0002 A_INT14 : origin = 0x401C, length = 0x0002 A_INT15 : origin = 0x401E, length = 0x0002 A_INT16 : origin = 0x4020, length = 0x0002 A_INT17 : origin = 0x4022, length = 0x0002 A_INT18 : origin = 0x4024, length = 0x0002 A_INT19 : origin = 0x4026, length = 0x0002 A_INT20 : origin = 0x4028, length = 0x0002 A_INT21 : origin = 0x402A, length = 0x0002 A_INT22 : origin = 0x402C, length = 0x0002 A_INT23 : origin = 0x402E, length = 0x0002 A_INT24 : origin = 0x4030, length = 0x0002 A_INT25 : origin = 0x4032, length = 0x0002 A_INT26 : origin = 0x4034, length = 0x0002 A_INT27 : origin = 0x4036, length = 0x0002 A_INT28 : origin = 0x4038, length = 0x0002 A_INT29 : origin = 0x403A, length = 0x0002 A_INT30 : origin = 0x403C, length = 0x0002 A_INT31 : origin = 0x403E, length = 0x0002 A_INT32 : origin = 0x4040, length = 0x0002 A_INT33 : origin = 0x4042, length = 0x0002 A_INT34 : origin = 0x4044, length = 0x0002 A_INT35 : origin = 0x4046, length = 0x0002 A_INT36 : origin = 0x4048, length = 0x0002 A_INT37 : origin = 0x404A, length = 0x0002 A_INT38 : origin = 0x404C, length = 0x0002 A_INT39 : origin = 0x404E, length = 0x0002 A_INT40 : origin = 0x4050, length = 0x0002 A_INT41 : origin = 0x4052, length = 0x0002 A_INT42 : origin = 0x4054, length = 0x0002 A_INT43 : origin = 0x4056, length = 0x0002 A_INT44 : origin = 0x4058, length = 0x0002 A_INT45 : origin = 0x405A, length = 0x0002 A_INT46 : origin = 0x405C, length = 0x0002 A_INT47 : origin = 0x405E, length = 0x0002 A_INT48 : origin = 0x4060, length = 0x0002 A_INT49 : origin = 0x4062, length = 0x0002 A_INT50 : origin = 0x4064, length = 0x0002 A_INT51 : origin = 0x4066, length = 0x0002 A_INT52 : origin = 0x4068, length = 0x0002 A_INT53 : origin = 0x406A, length = 0x0002 A_INT54 : origin = 0x406C, length = 0x0002 A_INT55 : origin = 0x406E, length = 0x0002 A_INT56 : origin = 0x4070, length = 0x0002 A_INT57 : origin = 0x4072, length = 0x0002 A_INT58 : origin = 0x4074, length = 0x0002 A_INT59 : origin = 0x4076, length = 0x0002 A_INT60 : origin = 0x4078, length = 0x0002 A_INT61 : origin = 0x407A, length = 0x0002 A_INT62 : origin = 0x407C, length = 0x0002 A_RESET : origin = 0x407E, length = 0x0002 APP_HEADER : origin = 0x4080, length = 0x0006 #ifdef __BOOTABLE_APP__ FLASH : origin = 0x4086, length = 0xBE59 HISTORY : origin = 0x12000,length = 0x0400 #endif /* Bootloader part */ #ifdef __BOOTLOADER__ FLASH : origin = 0xFEDE, length = 0x00A0 FLASH2 : origin = 0x10000,length = 0x2000 #endif B_ENTER : origin = 0xFF7E, length = 0x0002 INT00 : origin = 0xFF80, length = 0x0002 INT01 : origin = 0xFF82, length = 0x0002 INT02 : origin = 0xFF84, length = 0x0002 INT03 : origin = 0xFF86, length = 0x0002 INT04 : origin = 0xFF88, length = 0x0002 INT05 : origin = 0xFF8A, length = 0x0002 INT06 : origin = 0xFF8C, length = 0x0002 INT07 : origin = 0xFF8E, length = 0x0002 INT08 : origin = 0xFF90, length = 0x0002 INT09 : origin = 0xFF92, length = 0x0002 INT10 : origin = 0xFF94, length = 0x0002 INT11 : origin = 0xFF96, length = 0x0002 INT12 : origin = 0xFF98, length = 0x0002 INT13 : origin = 0xFF9A, length = 0x0002 INT14 : origin = 0xFF9C, length = 0x0002 INT15 : origin = 0xFF9E, length = 0x0002 INT16 : origin = 0xFFA0, length = 0x0002 INT17 : origin = 0xFFA2, length = 0x0002 INT18 : origin = 0xFFA4, length = 0x0002 INT19 : origin = 0xFFA6, length = 0x0002 INT20 : origin = 0xFFA8, length = 0x0002 INT21 : origin = 0xFFAA, length = 0x0002 INT22 : origin = 0xFFAC, length = 0x0002 INT23 : origin = 0xFFAE, length = 0x0002 INT24 : origin = 0xFFB0, length = 0x0002 INT25 : origin = 0xFFB2, length = 0x0002 INT26 : origin = 0xFFB4, length = 0x0002 INT27 : origin = 0xFFB6, length = 0x0002 INT28 : origin = 0xFFB8, length = 0x0002 INT29 : origin = 0xFFBA, length = 0x0002 INT30 : origin = 0xFFBC, length = 0x0002 INT31 : origin = 0xFFBE, length = 0x0002 INT32 : origin = 0xFFC0, length = 0x0002 INT33 : origin = 0xFFC2, length = 0x0002 INT34 : origin = 0xFFC4, length = 0x0002 INT35 : origin = 0xFFC6, length = 0x0002 INT36 : origin = 0xFFC8, length = 0x0002 INT37 : origin = 0xFFCA, length = 0x0002 INT38 : origin = 0xFFCC, length = 0x0002 INT39 : origin = 0xFFCE, length = 0x0002 INT40 : origin = 0xFFD0, length = 0x0002 INT41 : origin = 0xFFD2, length = 0x0002 INT42 : origin = 0xFFD4, length = 0x0002 INT43 : origin = 0xFFD6, length = 0x0002 INT44 : origin = 0xFFD8, length = 0x0002 INT45 : origin = 0xFFDA, length = 0x0002 INT46 : origin = 0xFFDC, length = 0x0002 INT47 : origin = 0xFFDE, length = 0x0002 INT48 : origin = 0xFFE0, length = 0x0002 INT49 : origin = 0xFFE2, length = 0x0002 INT50 : origin = 0xFFE4, length = 0x0002 INT51 : origin = 0xFFE6, length = 0x0002 INT52 : origin = 0xFFE8, length = 0x0002 INT53 : origin = 0xFFEA, length = 0x0002 INT54 : origin = 0xFFEC, length = 0x0002 INT55 : origin = 0xFFEE, length = 0x0002 INT56 : origin = 0xFFF0, length = 0x0002 INT57 : origin = 0xFFF2, length = 0x0002 INT58 : origin = 0xFFF4, length = 0x0002 INT59 : origin = 0xFFF6, length = 0x0002 INT60 : origin = 0xFFF8, length = 0x0002 INT61 : origin = 0xFFFA, length = 0x0002 INT62 : origin = 0xFFFC, length = 0x0002 RESET : origin = 0xFFFE, length = 0x0002 } /****************************************************************************/ /* Specify the sections allocation into memory */ /****************************************************************************/ SECTIONS { .bss : {} > RAM /* Global & static vars */ #ifdef __TESTER_APP__ .calib : {} > RAM #endif .data : {} > RAM /* Global & static vars */ .TI.noinit : {} > RAM /* For #pragma noinit */ .sysmem : {} > RAM /* Dynamic memory allocation area */ .cio : {} > RAM /* C I/O Buffer */ .stack : {} > RAM (HIGH) /* Software system stack */ #ifdef __BOOTLOADER_UPDATE__ .newboot : { *(.newboot) } > NEWBOOT #endif .text:_isr : {} > FLASH /* ISR Code space */ #ifdef __BOOTLOADER__ .cinit : {} > FLASH /* Initialization tables */ .const : {} > FLASH2 /* Constant data */ .text : {} > FLASH2 /* Code */ #else .cinit : {} > FLASH /* Initialization tables */ .const : { *(.const) . = align(16); } > FLASH /* Constant data */ .text : {} > FLASH /* Code */ #endif .pinit : {} > FLASH /* C++ Constructor tables */ .binit : {} > FLASH /* Boot-time Initialization tables */ .init_array : {} > FLASH /* C++ Constructor tables */ .mspabi.exidx : {} > FLASH /* C++ Constructor tables */ .mspabi.extab : {} > FLASH /* C++ Constructor tables */ .TI.ramfunc : {} load=FLASH, run=RAM, table(BINIT) /* Functions running in RAM, still needs init from firmware: */ /* memcpy(&_ramfunc_mem_start, &_ramfunc_flash_start, _ramfunc_size); */ .ramfunc : load = FLASH, run = RAM, LOAD_START(_ramfunc_flash_start), RUN_START(_ramfunc_mem_start), SIZE(_ramfunc_size) /* MSP430 INFO FLASH Memory segments */ .infoA : { INFOA_START = .; calib_flash = .; #ifdef __BOOTABLE_APP__ *(.calib) #endif } > INFOA .infoB : { INFOB_START = .; #ifdef __BOOTABLE_APP__ *(.settings) #endif } > INFOB .infoC : {} > INFOC .infoD : {} > INFOD #ifdef __BOOTLOADER__ .appHeader : {appHeaderFlash = .;} > APP_HEADER #else .appHeader : {} > APP_HEADER #endif .a_int00 : {SHADOW_VEC_TABLE = .;} > A_INT00 .a_int01 : {} > A_INT01 .a_int02 : {} > A_INT02 .a_int03 : {} > A_INT03 .a_int04 : {} > A_INT04 .a_int05 : {} > A_INT05 .a_int06 : {} > A_INT06 .a_int07 : {} > A_INT07 .a_int08 : {} > A_INT08 .a_int09 : {} > A_INT09 .a_int10 : {} > A_INT10 .a_int11 : {} > A_INT11 .a_int12 : {} > A_INT12 .a_int13 : {} > A_INT13 .a_int14 : {} > A_INT14 .a_int15 : {} > A_INT15 .a_int16 : {} > A_INT16 .a_int17 : {} > A_INT17 .a_int18 : {} > A_INT18 .a_int19 : {} > A_INT19 .a_int20 : {} > A_INT20 .a_int21 : {} > A_INT21 .a_int22 : {} > A_INT22 .a_int23 : {} > A_INT23 .a_int24 : {} > A_INT24 .a_int25 : {} > A_INT25 .a_int26 : {} > A_INT26 .a_int27 : {} > A_INT27 .a_int28 : {} > A_INT28 .a_int29 : {} > A_INT29 .a_int30 : {} > A_INT30 .a_int31 : {} > A_INT31 .a_int32 : {} > A_INT32 .a_int33 : {} > A_INT33 .a_int34 : {} > A_INT34 .a_int35 : {} > A_INT35 .a_int36 : {} > A_INT36 .a_int37 : {} > A_INT37 .a_int38 : {} > A_INT38 .a_int39 : {} > A_INT39 .a_int40 : {} > A_INT40 .a_int41 : {} > A_INT41 .a_int42 : {} > A_INT42 .a_int43 : {} > A_INT43 .a_int44 : {} > A_INT44 .a_int45 : {} > A_INT45 .a_int46 : {} > A_INT46 .a_int47 : {} > A_INT47 .a_int48 : {} > A_INT48 .a_int49 : {} > A_INT49 .a_int50 : {} > A_INT50 .a_int51 : {} > A_INT51 .a_int52 : {} > A_INT52 .a_int53 : {} > A_INT53 .a_int54 : {} > A_INT54 .a_int55 : {} > A_INT55 .a_int56 : {} > A_INT56 .a_int57 : {} > A_INT57 .a_int58 : {} > A_INT58 .a_int59 : {} > A_INT59 .a_int60 : {} > A_INT60 .a_int61 : {} > A_INT61 .a_int62 : {} > A_INT62 /* ENTRY POINT TO JUMP TO APPLICATION */ .a_reset : { ENTER_APP = .; } > A_RESET /* ENTRY POINT TO JUMP TO BOOTMODE */ .b_enter : { ENTER_BOOT = .; } > B_ENTER /* MSP430 Interrupt vectors */ .int00 : {} > INT00 .int01 : {} > INT01 .int02 : {} > INT02 .int03 : {} > INT03 .int04 : {} > INT04 .int05 : {} > INT05 .int06 : {} > INT06 .int07 : {} > INT07 .int08 : {} > INT08 .int09 : {} > INT09 .int10 : {} > INT10 .int11 : {} > INT11 .int12 : {} > INT12 .int13 : {} > INT13 .int14 : {} > INT14 .int15 : {} > INT15 .int16 : {} > INT16 .int17 : {} > INT17 .int18 : {} > INT18 .int19 : {} > INT19 .int20 : {} > INT20 .int21 : {} > INT21 .int22 : {} > INT22 .int23 : {} > INT23 .int24 : {} > INT24 .int25 : {} > INT25 .int26 : {} > INT26 .int27 : {} > INT27 .int28 : {} > INT28 .int29 : {} > INT29 .int30 : {} > INT30 .int31 : {} > INT31 .int32 : {} > INT32 .int33 : {} > INT33 .int34 : {} > INT34 .int35 : {} > INT35 .int36 : {} > INT36 .int37 : {} > INT37 .int38 : {} > INT38 .int39 : {} > INT39 RTC : { * ( .int40 ) } > INT40 type = VECT_INIT LCD_C : { * ( .int41 ) } > INT41 type = VECT_INIT TIMER3_A1 : { * ( .int42 ) } > INT42 type = VECT_INIT TIMER3_A0 : { * ( .int43 ) } > INT43 type = VECT_INIT PORT2 : { * ( .int44 ) } > INT44 type = VECT_INIT TIMER2_A1 : { * ( .int45 ) } > INT45 type = VECT_INIT TIMER2_A0 : { * ( .int46 ) } > INT46 type = VECT_INIT PORT1 : { * ( .int47 ) } > INT47 type = VECT_INIT TIMER1_A1 : { * ( .int48 ) } > INT48 type = VECT_INIT TIMER1_A0 : { * ( .int49 ) } > INT49 type = VECT_INIT DMA : { * ( .int50 ) } > INT50 type = VECT_INIT AUX : { * ( .int51 ) } > INT51 type = VECT_INIT USCI_A2 : { * ( .int52 ) } > INT52 type = VECT_INIT USCI_A1 : { * ( .int53 ) } > INT53 type = VECT_INIT TIMER0_A1 : { * ( .int54 ) } > INT54 type = VECT_INIT TIMER0_A0 : { * ( .int55 ) } > INT55 type = VECT_INIT SD24B : { * ( .int56 ) } > INT56 type = VECT_INIT ADC10 : { * ( .int57 ) } > INT57 type = VECT_INIT USCI_B0 : { * ( .int58 ) } > INT58 type = VECT_INIT USCI_A0 : { * ( .int59 ) } > INT59 type = VECT_INIT WDT : { * ( .int60 ) } > INT60 type = VECT_INIT UNMI : { * ( .int61 ) } > INT61 type = VECT_INIT SYSNMI : { * ( .int62 ) } > INT62 type = VECT_INIT .reset : {} > RESET /* MSP430 Reset vector */ #ifdef __BOOTABLE_APP__ .hist : { *(.history) } > HISTORY #endif } /****************************************************************************/ /* Include peripherals memory map */ /****************************************************************************/ -l msp430f6736.cmd