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.

[参考译文] 对于超过0xFFFF 数据大小的块、HEX2000无法纠正处理

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1228926/hex2000-cannot-correct-deal-with-block-exceeding-0xffff-data-size

尊敬的 Champs:

我的客户正在调试基于 F280049的项目 OTA 函数。 有时升级会失败、问题似乎在这里:

客户注意到、如果数据块大小超过0xFFFF (以0X010531为例)、HEX2000会将其视为0X0531数据大小。 这会导致产生的十六进制障碍。

如何解决该问题? 十六进制是否支持>0xFFFF 数据大小块? 或者我们可以在 CCS 中分割数据块吗?

此致、

布赖恩

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

    我认为您需要更具体地解决这个问题。 如果您共享了您的设置或命令脚本文件、可能会改善任何答案。

    [quote userid="320510" url="~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1228926/hex2000-cannot-correct-deal-with-block-exceeding-0xffff-data-size 能否支持>0xFFFF 数据大小块?

    我猜您是在制作 Intel Hex 文件。 我确认 hex2000.exe 在这种情况下至少会将超过65536字的图像自动分解为单独的英特尔十六进制文件块。 例如、我使用的命令文件包含以下内容:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    foo.out
    --image
    --intel
    ROMS
    {
    ALL_FLASH_SECTORS: org = 0x80000, len = 0x30000, romwidth = 16, fill = 0xFFFF
    files = { foo.hex }
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    您可以看到、在0x80000 (即0x90000)处的65536个字之后插入了一个新的扩展线性地址记录、但没有明确的指令。

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

    尊敬的 Kier:

    它是否需要特定的 HEX2000版本?

    此致、

    布赖恩

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

    我正在使用 CCS12、但我想它以前可能在 CC10中使用过相同的工作方式。 您是否正在使用旧得多的版本?

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

    尊敬的 Kier:

    客户不使用英特尔十六进制而是 ASCII 十六进制,我们似乎无法支持 ASCII 格式>65535个字。 是否有权变措施来启用 ASCII 中的长字?

    客户使用遵循配置来生成十六进制。

       -a -boot -sci8 -o  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    客户未使用英特尔十六进制而是 ASCII 十六进制文件

    该信息会改变问题。

    [quote userid="320510" url="~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1228926/hex2000-cannot-correct-deal-with-block-exceeding-0xffff-data-size 能否支持>0xFFFF 数据大小块?

    对数据块大小没有限制、因为 ASCII 文件格式中没有大小规格。 它只是一个具有起始地址的任意长度字节流。

    我想您可能会说您不能指定大于0xFFFF 的起始地址? 是这样吗? 如果不是、请通过实际的 hex 文件样片澄清问题。

    在实践中、我看不出问题。 例如、我可以使用起始地址0x80000生成 ASCII 十六进制文件:

    理论上,文件似乎不正确和矛盾。 最新的 PDF 手册(https://www.ti.com/lit/ug/spru513y/spru513y.pdf)指出16位地址、但8个字符表示可以使用32位地址:

    更让人困惑的是、在线版本(https://downloads.ti.com/docs/esd/SPRUI03/ascii-hex-object-format-ascii-option-stdz079753.html)

    指出32位地址和16位地址:

    您的客户是否可能只是阅读了本手册并假设32位地址不可能?

    请查看上述文档摘录并确认为什么在该字段支持32位地址时为 ASCII 十六进制指定了16位地址?

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

    时间 hex2000 对于 C28x 发出 ASCII 格式、地址字段长度至少为4个字符、如果需要、长度更长。  相应的文档应该会更新。  但我认为这不是问题的原因。

    我不明白一切。  但可能是您遇到已知问题 EXT_EP-10175的情况。  在的最新版本中修复了此问题 hex2000 。  正在使用哪个版本?

    谢谢。此致、

    -George.

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

    感谢您的确认。

    文档应更新。

    我已提交文档反馈。