【发布时间】:2016-02-15 22:13:58
【问题描述】:
如果您查看 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
我在哪里可以找到执行这些迁移的信息?
谢谢。
【问题讨论】:
-
Here,例如...
-
@EugeneSh。那是二进制文件描述符库手册。没有关于这些重定位类型的信息。这是一般信息。我正在寻找像第一个链接中一样的表格,其中包含每种类型的所有属性。
-
第一个列表是特定于硬件的。第二个是特定于库的。如果您仔细查看您提供的 c 文件,您会注意到它正在将一个映射到另一个。
-
是的,我明白了。但无论我搜索什么,BFD_RELOC_MSP430X_PCR16 或 R_MSP430X_PCR16 都没有出现在上面。所以我没有执行搬迁的信息。
标签: c microcontroller elf msp430 relocation