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.

[参考译文] CC2340R5:如何计算用于闪存编程的 CRC32

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1506766/cc2340r5-how-to-calculate-crc32-for-flash-programming

器件型号:CC2340R5
Thread 中讨论的其他器件: UNIFLASH

工具/软件:

您好的 团队、

一家编程工具供应商正在为 CC2340R5开发工具。 他们研究 Uniflash。 但是、他们无法理解 Uniflash 如何生成 CRC32值。 请帮助提供。  

请参阅 CC2340 TRM、 https://www.ti.com/lit/ug/swcu193a/swcu193a.pdf Chap 8。 它描述如下。 但是、工具供应商按照以下规则进行计算。 它们计算出的值与 Uniflash 不同。  

  CRC 计算和位置

 CRC 使用 CRC-32、其实现如下:

  • 多项式为 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
  • 多项式的十六进制表示为0x04C11DB7。 •初始值为0xFFFFFFFF。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    Morgan Xu 说:
    但是、他们无法理解 Uniflash 如何生成 CRC32值。

    他们如何查看 Uniflash 的 CRC32值? 他们是否使用"Flash Image"框中报告的值?

    如果是、则会针对整个.hex 文件计算此 CRC。

    CC2340 TRM 中显示的 CRC32计算仅用于.hex 文件的 CCFG 存储器区域、因此会有所不同。

    希望这对您有所帮助、

    Rafael

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

    尊敬的 Rafael:

    我是一家编程工具提供商、
    十六进制文件可以计算 CRC32校验和值。
    但我们从客户端收到的是一个 bin 文件、
    计算 CRC32校验和将会提供不同的值、
    如何获得与 UniFlash 相同的 bin 文件 CRC32校验和值?


    感谢您的帮助

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

    您好、Alex、

    正如 Rafael 所指出的、CRC32计算是根据整个文件中的数据计算的。 因此、 该文件的.bin 版本与同一程序文件的十六进制版本之间的值不会相同、因为文件中的数据会不同。

    至于计算、它基于 CRC-32/ISO-HDLC 算法、该算法具有与  前文所述相同的0x04C11DB7多项式。

    您可以使用以下网站来检查 UniFlash 获得的值、方法是在文本编辑器中打开二进制文件、将 ASCII/Hex 数据 复制到输入框中、并使用 UniFlash 中计算的结果值复制。

    如果您对此有任何其他问题、敬请告知。
    谢谢、
    Ricky
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Ricky


    我尝试使用 CRC-32/ISO-HDLC 和其他 CRC32算法、但没有获得与 UniFlash 相同的 CRC32校验和:0x6E2A5B23。



    感谢您的帮助

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

    Alex、

    感谢您的报告。 我将查看 UniFlash 中的实现、并查看计算是否存在错误。 我会随时更新您的最新信息。

    此致、

    Ricky

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

    我在 UniFlash CRC32计算代码中发现了一个错误。 我已提交一个错误来跟踪此情况、这将在下一个 UniFlash 版本(6月的 v9.2)中得到修复。

    谢谢、

    Ricky

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

    你好、Ricky

    感谢您在验证 UniFlash CRC32计算方面的帮助

    感谢你的帮助。

    Alex