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.

[参考译文] CCS/CCStudio:构建同一个工程会提供不同的输出

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/951159/ccs-ccstudio-building-the-same-project-gives-different-output

器件型号:CCStudio

工具/软件:Code Composer Studio

你好

我使用两台 PC 构建了相同的项目、但两个输出文件不同、.map 文件也不同

计算机 A 运行 Win7和 CCS8.3.1
计算机 B 正在运行 win10和 CCS8.3.1

我在 ComputerA 上压缩项目,复制到 computerB,并在 ComputerB 上使用“导入 CCS 项目”

我三重检查 CCS 版本是否相同、所有库是否相同、编译器是否相同、平台是否相同。

映射文件中
-入口点符号不同
-使用的 MSMCSRAM 的数量不同
-.text 段的长度不同
-输入段具有不同的原始地址
-输出段具有不同的地址

因此,来自 ComputerA 的 exe 从闪存(在 EVMK2H 上)正确引导,来自 computerB 的 exe 不正确
两个版本都使用 JTAG 正确运行

显然、我希望使用2台计算机具有相同的.out 文件。

我缺少什么吗?

此致

Fabio

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

    我不知道发生了什么。  但我知道一种帮助您缩小问题原因范围的方法。

    文章 Find Source of Code Size increase 显示了如何确定哪些函数在代码大小方面增加最多。  请遵循相同的方法、但您对具有不同大小的任何函数感兴趣。  将您的调查重点放在这些职能上。  我不知道您会找到什么。  但是、无论它是什么、它都有可能导致您找到问题的根本原因。

    请告诉我们您的发现。

    谢谢、此致、

    乔治

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

    你(们)好

    使用实用程序'ofd6x.exe'、我发现函数中存在大小差异、例如

    pciev0_write_AccR_reg 108 88 20
    pciev0_write_ackFreq_reg 120 116 4.
    pciev0_write_capPTR_reg 32 24 8.
    pciev0_WRITE_cfgTrans 寄存器96 84 12.
    pciev0_write_cmdStatus_reg 120 108 12.
    pciev0_write_corErrMask_reg 140 116 24
    pciev0_write_corErr_reg 140 116 24
    pciev0_WRITE_DEVStatCTRL_reg 316 252 64
    pciev0_write_deviceCap_reg 160 136 24.

    使用实用程序 winmerge,我发现目录 C:\ti\pdk_k2hk 4_0_15'中的许多.se66文件是不同的。 例如

    文件\pdk_k2hk _4_0_15\packages/ti\drv\SRIO\lib\K2H\C66\obj\src\srio_drv.se66、第130行

    计算机_A,第130行

    ; gSrioDriverVersionStr[33]@ 264
    位0x4a、8
    ;gSrioDriverVersionStr[34]@ 272
    位0x75、8
    ;gSrioDriverVersionStr[35]@ 280
    位0x6e、8
    ;gSrioDriverVersionStr[36]@ 288
    .bits 0x20、8
    ; gSrioDriverVersionStr[37]@ 296
    .bits 0x20、8


    计算机_B、第130行

    ; gSrioDriverVersionStr[33]@ 264
    位0x4d、8
    ;gSrioDriverVersionStr[34]@ 272
    .bits 0x61、8
    ;gSrioDriverVersionStr[35]@ 280
    位0x72、8
    ;gSrioDriverVersionStr[36]@ 288
    .bits 0x20、8
    ; gSrioDriverVersionStr[37]@ 296
    位0x31、8

    在我看来、SRIO 驱动程序版本不同

    也会发生同样的情况
    文件'\pdk_k2hk _4_0_15\packages/ti\drv\cppi\lib\c66\obj\src\cppi_drv.se66'
    文件'\pdk_k2hk _4_0_15\\packages/ti\drv\hyplnk\lib\c66\obj\src\hyplnk.se66'

    请参见下图、.se66的数量



    无论如何、我将'C:\ti\pdk_k2hk _4_0_15'从 ComputerA 复制到 ComputerB、现在输出文件和映射文件是相等的。

    但实际上、我不理解 PDK 目录为何不同。

    听起来德州仪器发布了两个不同的'pdk_k2hk _4_0_15'??

    此致  

    Fabio

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

    Fabio、

    我认为我们没有发布 pdk_k2hk _4_0_15的两个版本。 最新版本如下:    

    它应该是 PDK 4.0.16。 上一个应位于此处:  

    这是您正在使用的 PDK 4.0.15。 在两台 PC 上、您都下载了 PRSDK 安装程序、但内容不同。 您是否仍然具有相同的安装程序和 MD5?

    f5da1df3d4086226eb750589e9f4925a Processor-SDK_RTOS_K2HK_Manifest.html
    dab6c2fc7c8cf668132edb9591e0dbf software_manifest_linux.txt
    904ddb14f10c60a74e0c6a1fa367990c software_manifest_windows.txt
    1824d50d135c6524c100c70c6570c6524d25367e85a
    ti-processor-sdk-rtos-k2hk-evm-06.01.00.08-Windows-x86-Install.exe ti-processor-sdk-rtos-k2hk-evm-06.01.00.08-Linux-x86-Install.bin 

    我不确定发生了什么、很高兴您复制并解决了问题。

    此致、Eric  

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

    大家好、我发现 PC 和 MD5上的同一安装程序是相同的

    我不知道发生了什么,不管怎样解决了问题。

    谢谢你