I have four functions that the linker gives me the warning:
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?UART_RX_ISR_STUB?ISR *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?TIMER0_ISR_STUB?ISR *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?TIMER2_ISR_STUB?ISR *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?ASDC0_ISR_STUB?ISR
There's nothing that forces you to use OVERLAY directives for "every single function in your project". You should only have to do that for a small number of functions that are actually called from outside the project. You have to help the linker, but you don't have to do all of its work yourself. Another possible way out might be to link your boot loader into the app. Then cut it out of the .hex file before downloading that into the chip.
Yeah... But, why should I have to use the OVERLAY directive for ISRs in which the C51 compiler generates the interrupt vectors? Using INTVECTOR=0x8000... Ref.---------- linking... *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?RESUME_ISR?FW
"Yeah... But, why should I have to use the OVERLAY directive for ISRs in which the C51 compiler generates the interrupt vectors?" You don't, and that wasn't the subject of the original post. The original post was talking about calls from a separate Project (a boot loader, in fact).