Sorry, no, I have used the IAR toolchain (6.30 presently). The best I can do is supply the '.icf' file used there, in hopes it will spark some thoughts with this key line "initialize by copy { readonly code , readwrite };". As for the vector table, I let the Bootloader use the 'default' ROM@0 table, but the bootloader doesn't use any interrupts during flash operations. MQX (the APPlication task) is already set to use a different vector table arrangement thru VTOR, first ROM then RAM.
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x00000410;
define symbol __ICFEDIT_region_ROM_end__ = 0x00003FFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x1fff01b0;
define symbol __ICFEDIT_region_RAM_end__ = 0x2000FFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x200;
define symbol __ICFEDIT_size_heap__ = 0x2000;
/**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__ ];
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
//define block FIXED_ORDER_RAM with fixed order {section .text, section .noinit, section .data, section .bss};
define region APP = mem:[from 0x004000 to 0x7FFFF];
place in APP {section APPcode};
initialize by copy { readonly code , readwrite };
//initialize by copy { readwrite };
do not initialize { section .noinit };
place at address mem: __ICFEDIT_intvec_start__ { readonly section .intvec };
place at address mem: 0x00000100 {readonly data section STARTUP };
place at address mem: 0x00000400 {readonly data section FLSH_CONF };
place at address mem: 0x00003FBC {readonly data section METADATA };
//place at address mem: 0x0007FFBC {readwrite data section APP_METADATA };
place at address mem: 0x14000000 {readwrite section BOOTDATA };
place at end of ROM_region { readonly section .checksum };
place in ROM_region { readonly };
place in RAM_region { readwrite, /*block FIXED_ORDER_RAM,*/ block CSTACK, block HEAP };