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.

[参考译文] MSPM0G3507-Q1:十六进制格式问题

Guru**** 2625255 points

Other Parts Discussed in Thread: MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1363344/mspm0g3507-q1-hex-format-issue

器件型号:MSPM0G3507-Q1
主题中讨论的其他器件:MSPM0G3507

尊敬的 Champ:

对于当前十六进制格式、地址类型为0x02 -扩展段地址记录、客户 请求为0x04 -扩展线性地址记录。

您能否建议使用该解决方案来生成地址类型为0x04的十六进制文件 

谢谢!

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

    尊敬的 Huihuang:

    您能否提供他们正在使用的 IDE 和编译器?

    此致、
    卢克

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

    Luke、

    您只需要提出问题即可!

    我不认为你解决了我的问题!

    如果您认为它与 IDE 或编译器版本相关、您能否提供可解决此问题的 IDE 和编译器版本?

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

    CCS:12.5.0.00007

    编译器:TI Clang v3.2.0。 LTS

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

    尊敬的 Huihuang:

    我需要使用 IDE 和编译器、因为这些信息对于确定是否是我们能够/可以在当前选项上支持的东西非常重要。 例如、他们可以使用 GCC 代替 TI Clang 或 IAR/Keil 代替 CCS。

    此致、
    卢克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    user4752306 说:
    对于当前十六进制格式,地址类型为0x02--扩展段地址记录

    假设您使用命令创建十六进制文件、 tiarmobjcopy 。  是这样吗?

    user4752306 说:
    客户 请求是0x04--扩展线性地址记录

    唯一方法是使用十六进制实用程序 十六进制 而不是 tiarmobjcopy 。  运行命令的外观类似于...

    tiarmhex --intel --romwidth=32 -o output_file.hex input_file.out

    我不明白为什么类型为0x02的记录会出现问题。  如果您有任何解释、我将不胜感激。

    谢谢。此致、

    -乔治

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

    George

     为什么 类型0x02是一个问题的原因是, 用于读取 Hex 文件的第三方工具协议是基于0x04类型。 无法 基于0x02类型支持十六进制。 客户上一代 MCU 也支持0x04类型。  

    现在,当 使用到 TI MCU 满足这个0x02类型的问题.

    已用客户  tiarmhex、CCS 中的命令如下所示:

    Customer try below 命令,您可以参考 CCS 配置,如下所示。

    tiarmhex --intel --romwidth=32 -o output_file.hex input_file.out  


    生成十六进制不起作用、因为 romwidth = 32改变了数据顺序。

    客户要求  基于0x04 -在" memwidth=8 --romwidth=8 " 条件下扩展线性地址记录生成十六进制。

    请提供解决方案。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    客户要求是  根据0x04生成十六进制值--在"memwidth=8 --romwidth=8 " 条件下扩展线性地址记录。

    设置 --memwidth=8 --romwidth=8 --英特尔 将根据需要工作。

     用于读取 Hex 文件的第三方工具协议基于0x04类型。 无法 基于0x02类型支持十六进制文件[/引号]

    然后、应修复该第三方工具以处理0x02类型。  但我怀疑这在短期内不是一个切实可行的选择。

    谢谢。此致、

    -乔治

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

    用于"  设置  -- memwidth=8 -- romwidth=8 - Intel 将按要求运行"。  

    我不明白你的意思,"  --memwidth=8 --romwidth=8 --英特尔  " 命令行、您为什么说会按要求工作? 您以前是否尝试过此命令、可以得到 0x02类型的十六进制?

    实际测试结果为:  使用"  --memwidth=8 --romwidth=8 --英特尔  " 命令行中、生成的十六进制 基于0x02类型、而客户需要的十六进制格式为0x04类型。

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

    类似于...的命令

    tiarmhex --intel --romwidth=8 --memwidth=8 -o output_file.hex input_file.out

    ...创建一个十六进制输出文件,使用0x04类型的记录,而不是0x02类型的记录。

    谢谢。此致、

    -乔治

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

    George

    已确认使用命令生成十六进制文件:tiarmhex --intel --romwidth=8 --memwidth=8 -o output_file.hex input_file.out,可以生成0x04类型  

    记录。

    但此十六进制仍然无法满足客户的要求,因为十六进制文件 第一行 不包括 0x04 --扩展线性地址信息。

    根据第三方的要求,第一行需要 带有0x04 -- 扩展线性地址信息。

    对于 MSPM0G3507情况,第一行应为 :020000040000FA。

    您能帮助提供解决方案吗?

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

    tiarmhex 支持的 Intel hex 格式的详细信息、请参阅 tiarmclang 在线文档的 Intel MCS-7886目标格式部分。  当文件中下一个条目的地址的高16位为0时、不会发出记录类型04条目。  因此、如果第一个条目的地址高16位 为0、则文件开头不会出现记录类型04条目。  遗憾的是、没有方法可以更改此行为。

    谢谢。此致、

    -乔治