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.

[参考译文] UNIFLASH / C2000十六进制文件格式兼容性

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1224488/uniflash-c2000-hex-file-format-compatibility

主题中讨论的其他器件:UNIFLASH

您好!

根据实验、对于 C2000器件、UNIFLASH 似乎只能解释具有 romwidth=16的十六进制文件(用于刷写和验证)。 是这样吗?

例如、对于0x20八位位组、地址字段是否只需增加0x10、而对于0x20八位位组、地址字段是否通常增加0x20?

谢谢你。

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

    我知道、通常建议将 romwidth=16用于 C2000器件。 这是我在这方面的知识。 我将跟进 UniFlash 工程部门以了解更多详细信息。

    谢谢

    小标题

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid="479799" url="~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1224488/uniflash-c2000-hex-file-format-compatibility 通过实验、似乎对于 C2000器件、UNIFLASH 只能解释十六进制文件(用于刷写和验证)且 romwidth=16。 请回答正确吗?

    UniFlash 程序加载程序应该能够处理不同的 romwidth 类型

    [报价用户 id="479799" url="~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1224488/uniflash-c2000-hex-file-format-compatibility "]

    例如、对于0x20八位位组、地址字段是否只需增加0x10、而对于0x20八位位组、地址字段是否通常增加0x20?

    [/报价]

    上面的示例看起来是正确的行为。 这是 romwidth=16的情况吗?

    谢谢

    小标题

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    以上示例看起来像正确的行为。 这是 romwidth=16的情况吗?

    是的、就是这样。 romwidth=16。 np++示例是 hex2000制作的一个文件、该文件的 romwidth=16。 如果我使用 UniFlash 上传同一个句段并导出、就会得到完全相同的文件。 因此、我推断 UniFlash 必须在内部使用 romwidth=16、至少默认情况下。

    UniFlash 程序加载程序应能够处理不同的 romwidth 类型

    我本来也会这么想的,但我看不出如何。 当然、我无法看到 UniFlash 如何仅从十六进制文件的内容推断出不同的 romwidth、并且我无法看到 romwidth GUI 设置。 因此、这就是我断言 UniFlash 期望 romwidth=16、并且无法正确地将十六进制文件刷写到具有不同 romwidth 十六进制文件的 C2000中。

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

    Kier、

    是的,没错。 romwidth=16。 np++示例是 hex2000制作的一个文件、该文件的 romwidth=16。 如果我使用 UniFlash 上传同一个句段并导出、就会得到完全相同的文件。 因此、我推断 UniFlash 必须在内部使用 romwidth=16、至少默认情况下是如此。

    romwidth 在 UniFlash 的程序加载器/导出器中实际上并不是一个概念。 对于程序  加载、加载器仅解析十六进制文件中的地址和数据信息、并将其加载到器件中。 同样、对于导出、导出器会从器件中读取地址和存储器、然后将其写入文件。

    从这个意义上讲、由于 C2000器件是16位可寻址的、因此从 UniFlash 导出的文件将与使用 romwidth=16生成/导出数据时从十六进制实用程序获取的文件相匹配。

    我本来也想这么多,但我看不到怎么做。 当然、我无法看到 UniFlash 如何仅从十六进制文件的内容推断出不同的 romwidth、并且我无法看到 romwidth GUI 设置。 因此、这就是我断言 UniFlash 期望 romwidth=16、并且无法将十六进制文件正确刷写到具有不同 romwidth 十六进制文件的 C2000中。[/引号]

    我想你的推理大部分都是真实的。 UniFlash 可以加载以 romwidth=8输出的十六进制文件、但十六进制文件中的地址信息与原始器件存储器不匹配。  在示例中、以 romwidth=8的情况、每个记录的存储器地址将递增0x20、因此当程序加载器解析该文件时、器件将仅写入这些地址、其余0x10块未写入。

    谢谢。

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

    感谢您的确认。

    我有一个特定用例、其中第三方工具输出了一个常规 Intel hex 文件、我想对该文件进行转换以与 UniFlash 配合使用。 我只是想再次核实 UniFlash 的运行情况和预期。