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.

[参考译文] 编译器/OMAP3530:未记录的 ARMHEX 行为在16.9.6和18.1.1之间的变化?

Guru**** 2539500 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/673140/compiler-omap3530-undocumented-armhex-behavior-changes-between-16-9-6-and-18-1-1

器件型号:OMAP3530

工具/软件:TI C/C++编译器

我在不同版本的编译器之间使用十六进制文件生成工具时遇到了一些问题。 文档中没有任何内容表明这些版本之间存在变化。

在翻译过程中、可执行文件的基址会丢失。

我正在使用调用该工具

/ti/ccsv7/tools/compiler/ti-cgt-arm_18.1.1.LTS/bin/armhex.exe -map=st-app.map -a st-app.out -o st-app.hex -order MS -romwidth 32

如果我使用18.1.0.LTS 进行编译、则 hexfile 的前几行如下所示:

A0000美元、
00 40 2D E9 D1 6D 00 EB B7 70 00 EB 00 80 BD E8 00 72 87 00 80 00

(有另一行包含非标准字符以启动文件。 A0000地址*不*正确。

但是、如果我在相同的.bin 文件上运行 armhex.exe 的16.9.6版本(相同的选项)、我会得到:

A84000000美元、
00 40 2D E9 D1 6D 00 EB B7 70 00 EB 00 80 BD E8 00 72 87 00 80 00

这是正确的(或至少显然不是错误的)。

有什么想法吗?

John

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

    遗憾的是、您在十六进制实用程序中遇到错误。  当使用--ascii (或简称为-a)时、它仅输出地址的低16位。  我可以重现问题。  我在 SDOWP 系统中提交了 CodeGen-4576以进行调查。  欢迎您在我的签名中使用下面的 SDOWP 链接进行访问。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您确认并提交错误报告。 目前、我可能只需用旧版本替换 armhex 可执行文件。