有任何有关 Cl6x 链路对象的信息吗?
我想知道如何计算"obj"文件中的 CallP.S2与"out"文件中的 CallP.S2。
在下面的两个图表中标记了 CallP.S2的位置。
.obj 文件:
.out 文件
CL6x 链路如何计算0x1ffc13并得到0x1fff5A93?
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.
有任何有关 Cl6x 链路对象的信息吗?
我想知道如何计算"obj"文件中的 CallP.S2与"out"文件中的 CallP.S2。
在下面的两个图表中标记了 CallP.S2的位置。
.obj 文件:
.out 文件
CL6x 链路如何计算0x1ffc13并得到0x1fff5A93?
请在 C6000汇编工具手册 中搜索标题为 符号重定位的子章节。
谢谢。此致、
-乔治
这篇文章介绍了有关搬迁的详细信息的文档。
考虑这个简单的 C 代码...
/* file.c */ void function_call(); void example() { function_call(); }
构建它...
$ cl6x --symdebug:none --asm_listing file.c
cl6x 是 C6000编译器。 选项 -symdebug:无 禁止生成调试信息。 切勿在实际实践中这样做。 由于不存在调试信息、因此该示例更容易理解。 选项 -- asm_listing 说明如何创建汇编器列表文件。 它与源文件同名、扩展名更改为 .lst 。
要查看为此代码生成的重定位,请运行此命令...
$ ofd6x --obj_display=none,relocs file.obj OBJECT FILE: file.obj Relocation Table 1/1 for Section 1 (".text") id type offset sym name -- ---- ------ --- ---- 0 R_C6000_PCR_S21 0x00000004 5 function_call
要查看有关 ofd6x 请在 C6000汇编工具手册中进行搜索。 该输出显示重定位类型 R_C6000_PCR_S21 应用于本视频开头部分的 .text 。 此处是左下角列表中的 file.lst ...
48 00000000 01bc54f6 STW .D2T2 B3,*SP++(-8) ; [B_D64P] |5| 49 00000004 10000012! CALLP .S2 function_call,B3 ; [B_Sb64P] |6|
第二列给出了每条指令的偏移量。 在本例中、偏移量4用于第二条指令。 因此、重定位适用于该区域、 CALL P 来调用函数。
要查看所有重定位的文档、包括 R_C6000_PCR_S21 请在 C6000嵌入式应用二进制接口手册 中搜索标题为" 重定位"的子章节。
谢谢。此致、
-乔治