I have my boot code properly located in boot flash, but string literals defined in that code are ending up in application flash. For example, 108: void __attribute__ ((section (".BootLoadStartup"))) bCopyExtFlashToPic(UINT32 StartAddr){ 9FC00680 27BDFFC0 addiu sp,sp,-64 9FC00684 AFBF0038 sw ra,56(sp) 9FC00688 AFBE0034 sw s8,52(sp) 9FC0068C AFB00030 sw s0,48(sp) 9FC00690 03A0F021 addu s8,sp,zero 9FC00694 AFC40040 sw a0,64(s8) This is properly located in boot flash (0x9fc...) But, here's some code where I'm printing a string literal: 124: bUart2TxStringPolled("\r\nCopyExtFlashToPic from 0x"= ); 9FC006E4 3C029D02 lui v0,0x9d02 9FC006E8 244467B0 addiu a0,v0,26544 9FC006EC 0FF00364 jal 0x9fc00d90 9FC006F0 00000000 nop Note that it is pointing to the string in the 0x9d02 area. Looking at the pointer passed into bUart2TxStringPolled, I find it at 0x9d0267b0, which is not in the boot section. How can I force code in the boot section that has a string literal to locate the literal in the boot section? THANKS! Harold --=20 FCC Rules Updated Daily at http://www.hallikainen.com - Advertising opportunities available! Not sent from an iPhone. --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .