This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi
I’m currently working on a project using the MSP430F6736/33A.
The project includes a custom bootloader resides in flash and a bootable application code.
I had experienced some difficulties to relocate the secondary interrupt vectors table to the bootable application code section.
The linker command file and a vector.asm file (which try to relocate the interrupts to main application) are shared for the bootloader and the bootable.
I attached my linker command file and the vectors.asm code I’ll be thankful for any help.
; Forward for the interrupt handlers. ; ; Default are the interrupts re-vectored to the positions which are stored into ; the vector table of the application (Shadow vector table) which is located ; at the start address SHADOW_VEC_TABLE. ; ; Note, this can (and should) also be included in the normal application. ; The application can then run by itself and the conversion tool will simply ; remove the boot and calibration part.. $include .cdecls C,LIST,"build.h" ; what is being build.. .ref SHADOW_VEC_TABLE ; Stubs to call the address in the application interrupt table (shadow vectors) .text INT00 mov.w &SHADOW_VEC_TABLE + 0,PC INT01 mov.w &SHADOW_VEC_TABLE + 2,PC INT02 mov.w &SHADOW_VEC_TABLE + 4,PC INT03 mov.w &SHADOW_VEC_TABLE + 6,PC INT04 mov.w &SHADOW_VEC_TABLE + 8,PC INT05 mov.w &SHADOW_VEC_TABLE + 10,PC INT06 mov.w &SHADOW_VEC_TABLE + 12,PC INT07 mov.w &SHADOW_VEC_TABLE + 14,PC INT08 mov.w &SHADOW_VEC_TABLE + 16,PC INT09 mov.w &SHADOW_VEC_TABLE + 18,PC INT10 mov.w &SHADOW_VEC_TABLE + 20,PC INT11 mov.w &SHADOW_VEC_TABLE + 22,PC INT12 mov.w &SHADOW_VEC_TABLE + 24,PC INT13 mov.w &SHADOW_VEC_TABLE + 26,PC INT14 mov.w &SHADOW_VEC_TABLE + 28,PC INT15 mov.w &SHADOW_VEC_TABLE + 30,PC INT16 mov.w &SHADOW_VEC_TABLE + 32,PC INT17 mov.w &SHADOW_VEC_TABLE + 34,PC INT18 mov.w &SHADOW_VEC_TABLE + 36,PC INT19 mov.w &SHADOW_VEC_TABLE + 38,PC INT20 mov.w &SHADOW_VEC_TABLE + 40,PC INT21 mov.w &SHADOW_VEC_TABLE + 42,PC INT22 mov.w &SHADOW_VEC_TABLE + 44,PC INT23 mov.w &SHADOW_VEC_TABLE + 46,PC INT24 mov.w &SHADOW_VEC_TABLE + 48,PC INT25 mov.w &SHADOW_VEC_TABLE + 50,PC INT26 mov.w &SHADOW_VEC_TABLE + 52,PC INT27 mov.w &SHADOW_VEC_TABLE + 54,PC INT28 mov.w &SHADOW_VEC_TABLE + 56,PC INT29 mov.w &SHADOW_VEC_TABLE + 58,PC INT30 mov.w &SHADOW_VEC_TABLE + 60,PC INT31 mov.w &SHADOW_VEC_TABLE + 62,PC INT32 mov.w &SHADOW_VEC_TABLE + 64,PC INT33 mov.w &SHADOW_VEC_TABLE + 66,PC INT34 mov.w &SHADOW_VEC_TABLE + 68,PC INT35 mov.w &SHADOW_VEC_TABLE + 70,PC INT36 mov.w &SHADOW_VEC_TABLE + 72,PC INT37 mov.w &SHADOW_VEC_TABLE + 74,PC INT38 mov.w &SHADOW_VEC_TABLE + 76,PC INT39 mov.w &SHADOW_VEC_TABLE + 78,PC INT40 mov.w &SHADOW_VEC_TABLE + 80,PC INT41 mov.w &SHADOW_VEC_TABLE + 82,PC INT42 mov.w &SHADOW_VEC_TABLE + 84,PC INT43 mov.w &SHADOW_VEC_TABLE + 86,PC INT44 mov.w &SHADOW_VEC_TABLE + 88,PC INT45 mov.w &SHADOW_VEC_TABLE + 90,PC INT46 mov.w &SHADOW_VEC_TABLE + 92,PC INT47 mov.w &SHADOW_VEC_TABLE + 94,PC INT48 mov.w &SHADOW_VEC_TABLE + 96,PC INT49 mov.w &SHADOW_VEC_TABLE + 98,PC INT50 mov.w &SHADOW_VEC_TABLE + 100,PC INT51 mov.w &SHADOW_VEC_TABLE + 102,PC INT52 mov.w &SHADOW_VEC_TABLE + 104,PC INT53 mov.w &SHADOW_VEC_TABLE + 106,PC INT54 mov.w &SHADOW_VEC_TABLE + 108,PC INT55 mov.w &SHADOW_VEC_TABLE + 110,PC INT56 mov.w &SHADOW_VEC_TABLE + 112,PC INT57 mov.w &SHADOW_VEC_TABLE + 114,PC INT58 mov.w &SHADOW_VEC_TABLE + 116,PC INT59 mov.w &SHADOW_VEC_TABLE + 118,PC INT60 mov.w &SHADOW_VEC_TABLE + 120,PC INT61 mov.w &SHADOW_VEC_TABLE + 122,PC INT62 mov.w &SHADOW_VEC_TABLE + 124,PC ; -- Enter application from bootloader -- .if (BUILD != BUILD_BOOT) .ref _c_int00_noexit .sect ".a_reset" .short _c_int00_noexit .endif ; -- bootloader entry from application -- .if (BUILD == BUILD_BOOT) .ref startBootLoader ; reference to the C-funtion .sect ".b_enter" ; Software interrupt to start the .short startBootLoader ; bootloader from the application. .endif ; Register the stubs in the interrupt table of the bootloader. .sect ".int00" .short INT00 .sect ".int01" .short INT01 .sect ".int02" .short INT02 .sect ".int03" .short INT03 .sect ".int04" .short INT04 .sect ".int05" .short INT05 .sect ".int06" .short INT06 .sect ".int07" .short INT07 .sect ".int08" .short INT08 .sect ".int09" .short INT09 .sect ".int10" .short INT10 .sect ".int11" .short INT11 .sect ".int12" .short INT12 .sect ".int13" .short INT13 .sect ".int14" .short INT14 .sect ".int15" .short INT15 .sect ".int16" .short INT16 .sect ".int17" .short INT17 .sect ".int18" .short INT18 .sect ".int19" .short INT19 .sect ".int20" .short INT20 .sect ".int21" .short INT21 .sect ".int22" .short INT22 .sect ".int23" .short INT23 .sect ".int24" .short INT24 .sect ".int25" .short INT25 .sect ".int26" .short INT26 .sect ".int27" .short INT27 .sect ".int28" .short INT28 .sect ".int29" .short INT29 .sect ".int30" .short INT30 .sect ".int31" .short INT31 .sect ".int32" .short INT32 .sect ".int33" .short INT33 .sect ".int34" .short INT34 .sect ".int35" .short INT35 .sect ".int36" .short INT36 .sect ".int37" .short INT37 .sect ".int38" .short INT38 .sect ".int39" .short INT39 .sect ".RTC" .short INT40 .sect ".LCD_C" .short INT41 .sect ".TIMER3_A1" .short INT42 .sect ".TIMER3_A0" .short INT43 .sect ".PORT2" .short INT44 .sect ".TIMER2_A1" .short INT45 .sect ".TIMER2_A0" .short INT46 .sect ".PORT1" .short INT47 .sect ".TIMER1_A1" .short INT48 .sect ".TIMER1_A0" .short INT49 .sect ".DMA" .short INT50 .sect ".AUX" .short INT51 .sect ".USCI_A2" .short INT52 .sect ".USCI_A1" .short INT53 .sect ".TIMER0_A1" .short INT54 .sect ".TIMER0_A0" .short INT55 .sect ".SD24B" .short INT56 .sect ".ADC10" .short INT57 .sect ".USCI_B0" .short INT58 .sect ".USCI_A0" .short INT59 .sect ".WDT" .short INT60 .sect ".UNMI" .short INT61 .sect ".SYSNMI" .short INT62 .end
/* ============================================================================ */ /* 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 <obj files...> -o <out file> -m <map file> lnk.cmd */ /* cl430 <src files...> -z -o <out file> -m <map file> 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
Hi Ryan
Thanks for the quick response.
Basically I refer to a legacy code written for old product of ours, using MSP430F427A,
I was a bit lost with all the application notes and now, thanks to you, I know on which one to concentrate.
I will dive into the suggested code and keep you updated
Thanks
**Attention** This is a public forum