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/RM44L520:.hex 文件字节序

Guru**** 2539500 points
Other Parts Discussed in Thread: RM44L520, SEGGER, UNIFLASH

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/808835/ccs-rm44l520-hex-file-endianness

器件型号:RM44L520
主题中讨论的其他器件: SEGGERUNIFLASH

工具/软件:Code Composer Studio

大家好!

我正在使用 RM44L520 (小端字节序)和 CCS 9.0.1.00004开发应用。 作为调试硬件、我使用的是 Segger J-Link。 现在我已经达到了第一个里程碑、不会分享结果。 因此、我使用选项--romwidth=32 --intel 启用了 ARM 十六进制实用程序。 生成的 hex-file 以以下行开头:

:20000000EA007A75EAFFFFEEA00125BEAFFFFAFEA007C0DEA007DB2E51FF1B0E51FF1B00E

解码后、复位矢量为0xEA 0x00 0x7A 0x75。 如果我将该文件加载到十六进制编辑器(HxD)中、它会显示正确的32位字0xea007a75。 但是、当我将此文件导入到 Segger 外部闪存实用程序中时、它们似乎将数据解释为字节流并将其转换为小端32位字。 然后、复位矢量交换了字节0x757a00ea。 很显然、刷写后该代码不会运行。

如果我回读在调试时编程的闪存、那么字节顺序是正确的...

有人能告诉我问题的位置以及如何解决? 谢谢你

1月

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

    1月、

    这似乎是您可能需要与 Segger 联系的内容。  我不熟悉他们的闪存编程实用程序。  

    1) 1) UniFlash 是否对.out 进行了正确编程?

    2) 2) UniFlash 是否对.hex 进行了正确编程?

    如果1和2的答案都是肯定的、则您需要联系 Segger。  

    如果1的答案是肯定的、但2的答案是否定的、那么我们需要看看如何生成.hex。

    您可以从 dev.ti.com/uniflash 获取 UniFlash

    此致、

    John

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

    您好 John!

    非常感谢您的快速响应。 我试过 Uniflash、但令我惊讶的是、它可以与 Segger J-Link 一起使用。 我可以成功地对.out 文件进行编程、并使用.hex 文件获得相同的错误。 使用正确的字节顺序对.out 进行编程、并且.hex 已交换字节顺序。 因此、它与 Segger J-Flash 存在相同的问题。 生成的.hex 文件 armhex 具有错误的字节顺序。

    1月

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

    您好、Jan、

    我看到您使用的是小端字节序 Hercules 器件。 请参阅以下相关主题:

    https://e2e.ti.com/support/tools/ccs/f/81/t/797282

    谢谢

    Ki

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

    您好 Ki、

    非常感谢您的回答。 这解决了我的问题。 十六进制文件现在是这样、它使用 J-Flash 工作。

    1月