文档中缺少 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 的文档。
如果您检查来自 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 的文档。