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.

[参考译文] TMS320F28388D:十六进制文件格式的差异-校准不支持文件

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1462712/tms320f28388d-discrepancies-in-hex-file-format---file-not-supported-for-calibration

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

工具与软件:

尊敬的团队:

我们当前 使用以下命令并借助十六进制实用程序从.out 文件生成十六进制文件:

命令:  hex2000 -i <.out>-o <.hex>-order ms --romwidth=16  -- memwidth=16.

生成的 hex 文件如下所示:

 

但是、由于字节计数和地址大小不一致、许多十六进制查看器工具会显示错误、例如"重叠线"。 此外、该文件看起来不是标准 Intel 十六进制文件格式。

 

 

我们感谢您对以下几点的支持:

  1. 文件解码: 我们如何解码该十六进制文件以确定给定地址处的特定值? 是否有任何 TI 特定的工具可以读取和解释此文件格式?
  2. 离线校准工具: 是否有工具可以支持此 TI 生成的文件的离线校准、特别是用于使用更新 hex 文件中的变量值 。 A2L 文件作为数据库而不连接到 ECU?   
    由于这种重叠数据问题、vCDMStudio 和 INCA 等标准校准工具不支持 TI 生成的 memwidth = 16的文件。

 

我们期待着你对这些问题的指导和建议。

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

    下面是一些相关的背景...对于大多数 CPU 架构、每个地址对应1个8位字节。  这在 C28x 上不适用、其中每个地址对应1个16位字。

    请搜索 C28x 汇编工具手册 中标题为" 控制 ROM 器件地址"的子章节。  虽然我无法通过测试确定、但我相信该选项 -字节 可以解决您的问题。  这一小节将介绍其中的原因。

    谢谢。此致、

    -George.

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

    尊敬的 


    感谢您的答复。

    我们根据您的建议尝试了--byte 选项、观察结果如下:

    命令1:  hex2000 -i <.out>-o <.hex>-order ms --romwidth=16 --memwidth=16  

    此十六进制文件工作正常、Uniflash 也成功刷写了它。

     

     

    命令2. : hex2000 -i <.out>-o <.hex>-order ms --romwidth=16 --memwidth=16.  -字节

    Uniflash 无法在控制器上刷写此十六进制文件、产生错误、如所示  "[错误] C28xx_CPU1:文件加载程序:验证失败:地址0x02C020处的值@程序不匹配请验证目标存储器和存储器映射。"


    如果我在十六进制查看器中使用--byte 选项打开该十六进制文件、则在0x02C020位置有一些数据、如果没有--byte 选项、则十六进制文件中的数据不是这样。

     

    我已经附加了在两种情况下都很常见的 COMMAND_1和 COMMAND_2十六进制文件、映射文件和.cmd 文件。

    e2e.ti.com/.../Debug_5F00_Artifacts.zip

    征求您对此提供有价值的意见。

    谢谢、此致、

    Vikram Tathe.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="605914" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1462712/tms320f28388d-discrepancies-in-hex-file-format---file-not-supported-for-calibration/5614187 #5614187"]

    命令1:  hex2000 -i <.out>-o <.hex>-order ms --romwidth=16 --memwidth=16  

    此十六进制文件工作正常、Uniflash 也成功刷写了它。

    [报价]

    这种行为是预期行为。  Uniflash 可以显式处理 C28x 寻址存储器的异常方式。  它还支持读取可执行文件( .out )文件作为输入。  无需转换为十六进制文件。

    如果我在十六进制查看器中使用--byte 选项打开此十六进制文件、则在0x02C020位置有一些数据、在没有--byte 选项的十六进制文件中则不是这样。

    我不熟悉该十六进制查看器及其工作原理。  我可以告诉您该数据同时出现在两个十六进制文件中。  这是来自的线路 COMMAND_1.HEX ...

    Fullscreen
    1
    :2060100003E800000000000000000000000000000000000000000000000000000000000085
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    这是的对应行 Command_2.hex ...

    Fullscreen
    1
    :20C0200003E800000000000000000000000000000000000000000000000000000000000015
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    要了解这些行代表什么、 请在 C28x 汇编工具手册 中搜索标题为  Intel MCS-86目标格式的子章节。  您将看到、唯一的区别是地址字段和校验和。  而变化都为 -字节 影响这些参数。

    谢谢。此致、

    -George.

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

    您好、 

    感谢您的支持。

    1.本例中的主要问题是生成的文件与 Uniflash 工具不兼容(请参阅上一篇文章中随附的错误屏幕截图)。

    我们还尝试了使用 TI 提供的示例代码进行刷写、但在刷写过程中遇到了相同的错误。

    您能否尝试使用以下命令来刷写代码并确认其是否有效?
    hex2000 -I <.out> -o <.hex> -order MS --romwidth=16 --memwidth=16 --byte

    2. In addition to that, could you please review cmd file attached in the previous post. If i miss anything please suggest.

    Thanks,

    Vikram Tathe 

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

    您好、George:

    我想就上一篇文章中提到的问题采取后续行动。

    您能否告诉我您是否有机会查看并提供任何更新?

    谢谢!

    Vikram Tathe.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请尝试使用以下命令刷写代码并确认其是否有效?
    hex2000 -I <.out> -o <.hex> -order MS --romwidth=16 --memwidth=16 --byte[报价]

    也许我没有详细说明、但我已经说过、在您使用时 Uniflash 不起作用 -字节 .  对于 Uniflash 输入、请勿使用 -字节 或提供 .out 报头文件。

    请查看上一篇文章中随附的 cmd 文件

    假设您是指链接器命令文件 c2838x.cmd。  要以深入的方式查看该文件、需要了解我没有的整个系统。

    谢谢。此致、

    -George.

    [/quote]