Search code examples
cmicrocontrollerelfmsp430relocation

MSP430 relocation types missing in documentation


If you check the slaa534.pdf file from Texas Instruments there are only 18 relocation types:

Idx. Name. 1. R_MSP430_NONE 2. R_MSP430_ABS32 3. R_MSP430_ABS16 4. R_MSP430_ABS8 5. R_MSP430_PCR16 6. R_MSP430X_PCR20_EXT_SRC 7. R_MSP430X_PCR20_EXT_DST 8. R_MSP430X_PCR20_EXT_ODST 9. R_MSP430X_ABS20_EXT_SRC 10. R_MSP430X_ABS20_EXT_DST 11. R_MSP430X_ABS20_EXT_ODST 12. R_MSP430X_ABS20_ADR_SRC 13. R_MSP430X_ABS20_ADR_DST 14. R_MSP430X_PCR16 15. R_MSP430X_PCR20_CALL 16. R_MSP430X_ABS16 17. R_MSP430_ABS_HI16 18. R_MSP430_PREL31

However, I got a ELF file that has more. I checked on the internet and found an interesting file from binutils package called elf32-msp430.c.

It looks like a software piece to perform the relocation of data, and it has these relocation types.

1. BFD_RELOC_NONE 2. BFD_RELOC_32 3. BFD_RELOC_MSP430_10_PCREL 4. BFD_RELOC_16 5. BFD_RELOC_MSP430_16_PCREL 6. BFD_RELOC_MSP430_16 7. BFD_RELOC_MSP430_16_PCREL_BYTE 8. BFD_RELOC_MSP430_16_BYTE 9. BFD_RELOC_MSP430_2X_PCREL 10. BFD_RELOC_MSP430_RL_PCREL 11. BFD_RELOC_8 12. BFD_RELOC_MSP430_SYM_DIFF 13. BFD_RELOC_32 14. BFD_RELOC_16 15. BFD_RELOC_8 16. BFD_RELOC_MSP430_ABS8 17. BFD_RELOC_MSP430X_PCR20_EXT_SRC 18. BFD_RELOC_MSP430X_PCR20_EXT_DST 19. BFD_RELOC_MSP430X_PCR20_EXT_ODST 20. BFD_RELOC_MSP430X_ABS20_EXT_SRC 21. BFD_RELOC_MSP430X_ABS20_EXT_DST 22. BFD_RELOC_MSP430X_ABS20_EXT_ODST 23. BFD_RELOC_MSP430X_ABS20_ADR_SRC 24. BFD_RELOC_MSP430X_ABS20_ADR_DST 25. BFD_RELOC_MSP430X_PCR16 26. BFD_RELOC_MSP430X_PCR20_CALL 27. BFD_RELOC_MSP430X_ABS16 28. BFD_RELOC_MSP430_ABS_HI16 29. BFD_RELOC_MSP430_PREL31 30. BFD_RELOC_MSP430_10_PCREL 31. BFD_RELOC_MSP430_2X_PCREL 32. BFD_RELOC_MSP430_RL_PCREL 33. BFD_RELOC_MSP430_SYM_DIFF

Where can I seek the information to perform these relocations ?

Thank you.


Solution

  • It turns out that I was using another compiler. Those relocations (second ones) are from MSPGCC ando not from TI compiler. I will just search for the documentation of the MSPGCC instead.