器件型号: AM2432
问题描述
使用 Code Composer Studio (CCS) 编译工程时、即使使用相同的源代码和相同的提交、每次我编译时生成的二进制文件也会有所不同。
从配置管理的角度来看、只要源代码和构建环境相同、我希望生成的二进制文件保持相同。
在 CCS/ ARM-CGT-CLANG 中、此行为是由设计预期行为、还是由某些构建设置引起?
存在许多风险
-
Code Composer Studio:12.8.1.00005
-
ARM-CGT-CLANG:4.0.1.LTS
-
AM243X-AM243X:11.00.00.08 INDUSTRIAL-COMMUNICATIONS-SDK
Build method
-
CCS 中的“Rebuild Project“(重建工程)
我已经试过了
我比较了两个重建之间的以下输出、但它们都不匹配:
-
.hs_fs间隔 -
.out间隔 -
.bin.out使用转换的文件tiarmobjcopy -
.out使用生成的反汇编输出tiarmobjdump -d
其他意见
最初、我怀疑这可能是我们内部项目配置特有的问题。
不过、我使用 SDK 示例工程重现了相同的行为。
我测试的具体示例是:
ethernetip_adapter_discrete_io_device_mii_demo_am243x-evm_r5fss0-0_freertos_ti-arm-clang
即使对于此示例、多次重新编译工程也会生成不同的二进制文件。
问题
-
使用 CCS 和 ARM-CGT-CLANG 进行构建时、非确定性二进制输出是否为已知或预期行为?
-
否则、是否有推荐的编译器、链接器或 CCS 设置来确保可重现(确定性)编译?


