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.

[参考译文] TMS320F28.0041万C:TMS320F28.0041万C

Guru**** 2535750 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1090979/tms320f280041c-tms320f280041c

部件号:TMS320F28.0041万C
主题中讨论的其他部分:UNIFLAASH

TI社区团队,您好!

我有引导加载程序,它将在MCU闪存中的地址0x8.3万处引导二进制映像。 我可以在该地址加载二进制映像,引导加载程序将引导至该映像,没有任何问题。 所以我知道二进制映像已正确刷新。 我已使用Uniflash查看了二进制映像,其示例如下所示:

IVE使用带有以下命令的hex2000实用程序生成了二进制文件:

${CG_TOOL_ROOT}/bin/hex2000 -q -b -fill = 0xFFFF -image -o ${BuildArtifactFileBaseName}.bin ${CCS_PROJECT_DIR}/scripts/application_f28.0041万.roms ${BuildArtifactFileName}

当我在十六进制编辑器中查看二进制文件时,我会看到以下内容:

据我所能确定,已翻转16位字的字节数。 闪存中的第一个单词是0x761F,但二进制中的第一个单词是0x1F76。

MCU是Little Endian,我希望生成的任何二进制文件也是Little Endian。 但闪存字节和二进制字节是反转的。 我的问题是为什么要翻转字节?

感谢您对此提供的任何帮助

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

    我想我解决了这个问题。 这是我中断Uniflash内存浏览器的方式。

    第一个词761F。 我假设这意味着0x8.3万 = 76,0x8.3001万 = 1F。 更好的方法是将其视为完整的十六进制数0x7615,其中0x<MSB><lsb>。 这意味着0x1F是LSB,0x76是MSB。

    输出的二进制文件是在小尾数中,因此LSB排在第一位。 这意味着0x1F是二进制文件中的第一个字节,它是正确的,可以在十六进制编辑器中看到。

    在设置为8位十六进制格式的内存浏览器中查看这一点可以清楚地看到:

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

    您好,Gary:

    很高兴这个问题得到了解决。  我是否可以关闭此帖子或您是否有其他问题?

    谢谢,此致,
    Vamsi