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.

[参考译文] CODECOMPOSER:如何使用 MSPM0生成 Motolora 格式文件

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1512519/codecomposer-how-to-generate-the-motolora-format-files-with-mspm0

部件号:CODECOMPOSER

工具/软件:

尊敬的专家:

当我使用 TI ARM CLANG 编译器生成 Motolora 格式的十六进制文件时、我发现输出文件错误。 请帮助检查这是一个错误还是我错过了一些关键操作。

1.启用 Arm Hex Utility

2.检查输出文件

让我们重点关注第2行:

S3 22 00000000 00802020 1B030000 27030000 27030000 00000000 00000000 00AB

我检查了标准 motolora 格式:https://en.wikipedia.org/wiki/SREC_(file_format) 

通常、字节计数应该是奇数、因为最后一个字节应该是单个校验和字节。

并且、字节计数应是几个特定值、通常为:

4 (地址、32位)+ 16 (数据字节)+ 1 (校验和)= 21 (十进制)= 0x15

4 (地址、32位)+ 32 (数据字节)+ 1 (校验和)= 37 (十进制)= 0x1F 0x25

我在行2中看到0x22、因此不正确。 我可以看到以下数据出现混乱(第3行和下一行)。

我还在此处上传了参考项目:(CCS 12.8.1)

test_motolora_s3.zip

期待您的答复在这里,谢谢!

B.R.

Sal

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

    感谢您报告此问题并提供详细信息。 我们将分析问题并 根据需要提交缺陷。

    Ajay

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

    感谢您附加测试用例、其中包括测试可执行文件和十六进制实用程序命令行。

    此处的有效载荷具有奇数字节数(29)。  再次考虑第2行:

    S3 22 00000000 00802020 1B030000 27030000 27030000 00000000 00000000 00AB

    末尾的"00AB"是一个字节的有效载荷加上一个字节的校验和"AB"。

    29字节的有效载荷+ 4字节的地址+ 1字节的校验和= 34、即十六进制0x22、与显示的字节计数相匹配。

    因此、在我所见的范围内、十六进制实用程序输出看起来是正确的。

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

    您好 Arch、

    感谢您的澄清。 此处还有其他问题:

    如何生成"16字节"或"32字节"的有效载荷? 我们在这里有一个选项,或者我们只支持29字节的播放加载。

    B.R.

    Sal

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

    尊敬的  Ajay & Arch:

    如何生成"16字节"或"32字节"的有效载荷? 我们在这里有一个选项、或者我们只支持29字节的播放加载。

    您能说明一下这个器件吗? 谢谢!

    已更新:客户反馈、唯一可用的有效载荷字节长度是"16字节或32字节"、因此我们需要一种权变措施来支持这一点。  

    B.R.

    Sal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何生成"16字节"或"32字节"的有效载荷? 我们在这里有一个选项、或者我们只支持29字节的播放加载。

    遗憾的是、十六进制实用程序不支持控制一行中的数据字节数。  十六进制文件的每一行对行中的数据字节数进行编码。  将十六进制文件读取为输入的工具 依赖于该编码来知道 每行的字节数。  在这种情况下、无需控制每行的字节数。

    谢谢。此致、

    -乔治