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.

relocation from function ... to Symbol ... overflowed

Other Parts Discussed in Thread: MSP430F5329

Hello,

after a Software modification I had 100 warnings like this:

relocation from function "ADC12_ISR" to symbol "l_this_file" overflowed; the 17-bit relocated address 0x125f8 is too large to encode in the 16-bit field (type = 'R_MSP_REL16' (161), file = "./sources/bsp_adc.obj", offset = 0x00000028, section = ".text:_isr:ADC12_ISR")

After I changed he Silicon Versoin from msp to mspx and also the Runtime Support Library: rts430.lib . After the warnings disappear but after software loading (MSP430F5829) the System was blocked: Message: Failed Software Reset: Could not Access devices - security fuse is blow.

I couldn't understand why?

  • Nobody could give me an answer?

  • My Controller is a MSP430F5329, these warnings appears wenn I had a function with FLOATING POINT.

    The MSP430F5329 don't manage floating point so the compiler charge a librairy.

    At the end my FLASH had a difference (with or without the floating point function) from 16kB, it's amazing!

  • I use IAR toolchain, so the error messages are not 100% familiar, but it seems that some of the source files were compiled with small memory model and some with large, or perhaps an error in your linker file.

    It looks like you have a 16-bit pointer (in bsp_adc.obj) but the address of ADC12_ISR is in upper flash (which I think is invalid anyway if it is a direct interrupt vector, they *have* to be in lower flash reachable with 16-bit address).

    Hope this gives you some clues.

  • As Brian suspected, this has to do with a 16 bit pointer being expected but a 17 (20) bit pointer being generated after placing the code and data in lower and upper flash.

    The lockup after code upload may indeed be caused by an ISR that is erroneously placed in upper flash while the vector table entries only have 16 bit (But I wonder why there was no more error then).
    Possibly, the system jumps to 0x025f8 now instead of 0x125f8, which of course leads to a crash and reset and breaks JTAG communication.
    You might need to use BSL to erase program memory. Or try the Elprotronic tool. CCS will lose contact to the MSP if it crashes before connection is fully established. And CCS isn't the fastest tool to get hold on the target MSP through JTAG.

**Attention** This is a public forum