文档中缺少 MSP430 重定位类型

MSP430 relocation types missing in documentation

如果您检查来自 Texas Instruments 的 slaa534.pdf 文件,只有 18 种重定位类型:

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

但是,我得到了一个包含更多内容的 ELF 文件。我在互联网上查了一下,从 binutils 包中找到了一个有趣的文件,名为 elf32-msp430.c

看起来是一个执行数据重定位的软件,并且有这些重定位类型。

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

我在哪里可以找到执行这些搬迁的信息?

谢谢。

原来我用的是别的编译器。这些重定位(第二个)来自 MSPGCC 而不是来自 TI 编译器。我将只搜索 MSPGCC 的文档。