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.

[参考译文] TMS320F28379D:获得不同的输出、使用编译器版本22.6.1在 Linux 和 Windows 中编译工程

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1514298/tms320f28379d-getting-different-outputs-compiling-a-project-in-linux-and-windows-using-compiler-version-22-6-1

部件号:TMS320F28379D

工具/软件:

我尝试从 Windows 迁移到 Linux、我对 Linux 和 Windows 使用相同的编译器版本22.6.1、但在其中一个 CPU 中、.hex 文件中得到了不同的结果。 我还在.map 文件中做了一个比较、注意到一些符号只移动了1个位置。 这些 simbol 是函数名,我试图检查指令是否相同,但我不知道如何做到这一点。

那么、我的问题是、是否知道同一个工程的 Linux 编译器和 Windows 编译器的输出不同? 如果保证输出相同、那么对于其中一个 CPU、可能会有什么不同? 我可能缺少一些知识、因此希望提供与此相关的文档。

提前感谢

编辑:

大家可以看到、Linux (右)和 Windows (左)之间有一些变化

此外、一些符号会被移动1个字节

编辑2:

我做了更多的研究,注意 diff,在整个代码中唯一相关的 diff 是这个部分,当在 windows (左侧)添加一个额外的指令 MOVL XT, acc 然后使用 XT,其中在 Linux (右侧)直接使用 ACC。 也似乎 ACC 托管在 windows 零件中的较早位置

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

    您能否提交一个可以用于重现和分析问题的测试案例(如果可能、请切断)? 谢谢。

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

    你好,对不起我迟到的回复,我知道我将不得不投入一点时间,我没有,也我不是一个真正的经验,创建项目和调试这种问题. 这个项目还包含我的工作地点的私人信息,所以削减它是强制性的,会让我有一些时间。 我一得到时间就会提供示例。

    我想问您以前是否有这种情况的报告、或者在这种情况发生时是否有任何解决方法。

    我试图迁移它在另一台计算机,以防万一,我得到了完全相同的结果,如果这有帮助。 只要我能,我就会提供这个信息

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

    从映射文件片段中、我可以看出问题已隔离到源文件 Int_Period_ INV_CPU1.c 。  对于该文件、 请按照 如何提交编译器测试用例一文中的说明进行操作。

    谢谢。此致、

    -乔治