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.

[参考译文] TM4C1290NCPDT:在不同 PC 之间执行文件(.out)的不同大小

Guru**** 2524460 points
Other Parts Discussed in Thread: TM4C1290NCPDT

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/983572/tm4c1290ncpdt-about-different-size-of-execute-file-out-between-different-pc

器件型号:TM4C1290NCPDT

您好!

关于 TM4C1290NCPDT 上的执行文件大小(.out)、我的客户提出了一些问题。

它们在不同 PC 上构建了相同的 TM4C1290NCPDT 程序、但执行文件大小(.out)在不同 PC 上有所不同。

它们的条件如下、并且在每台 PC 上都是相同的。

CCS:5.5.0.00077

符合标准:ARM 5.1.1

PC 操作系统:Win10 Pro

 

例如,他们用三台 PC (1号,2号,3号)确认了这一点。

no1<-> no2:大小相同。

no.1<-> no.3:大小不同。

 

1) 1)他们确认了编译器、链接器和 ti-cgt-arm 的修订版本、这些修订版本没有不同

  并确认了每个 CCS 上的链接器选项,但这些配置没有不同。

 

2) 2)他们使用比较工具确认了编译器文件夹中的一些文件。

・rtsv7M4_T_le_v4SPD16_eabi.lib ->没有区别

・dMED ->没有区别

・gcc-arm-none-eabi-4_7-2012Q4 ->没有区别

 

3)接下来、他们确认了段、两个段(strtab 和 shstrtab)的大小不同。

请参阅随附的文件。 (readelf_out_PC1.txt/ readelf_out_PC2.txt)

 

4)每个目标文件(.obj )的大小相同,但链接后,执行文件(.out)的大小不同。 (如下所示)

PC1:1、213、232字节

PC2:1、213、072字节

当 execute files(.out)转换为二进制文件时。(bin),二进制文件的大小相同。 (如下所示)

但映射文件(.map)中的某些符号不同。

PC1:141、688字节

PC2:141、688字节

请参阅随附的地图文件。 (L_Tiva.Release_N106_PC1.map/ L_Tiva.Release_N106_PC2.map)

 

(问题)

他们认为不同尺寸的原因是两个部分(strtab 和 shstrtab)不同的。

因此、映射文件(.map)中的某些符号在每台 PC 上都不同。

他们的理解是正确的?

如果是、两个部分为什么不同? 请告诉我们原因吗?

或者是否存在不同尺寸的其他原因?

 

此致、

TAO_2199

e2e.ti.com/.../5684.readelf_5F00_out_5F00_PC1.txte2e.ti.com/.../5367.readelf_5F00_out_5F00_PC2.txte2e.ti.com/.../L_5F00_Tiva.Release_5F00_N106_5F00_PC1.txte2e.ti.com/.../L_5F00_Tiva.Release_5F00_N106_5F00_PC2.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我可以缩小差异的原因。  但我无法解释。

    从您所附的文件中可以看到的唯一有意义的区别是、三个函数位于不同的地址。 我将映射文件与 Beyond Compare 进行了比较。  下面是一个使其清晰的屏幕截图。

    所有这三个函数都位于文件  EEPROM_AT2526AN_socSPI.c 中  因此、请重点研究该文件的编译方式以及这些函数如何最终使用不同的地址。

    谢谢、此致、

    乔治