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.

[参考译文] CCS/MSP430FR6047:固件的运行时 CRC 32位计算

Guru**** 2553450 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/839842/ccs-msp430fr6047-runtime-crc-32-bit-calculation-of-firmware

器件型号:MSP430FR6047

工具/软件:Code Composer Studio

你好!

我需要计算运行时 MSP430上当前运行的固件版本的 CRC (32位)。 我已经看到一些算法示例、我需要使用缓冲区/存储器为函数馈送数据、在这里我有一点丢失。

如何做到这一点?  

提前感谢!

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

    另请参阅:

    https://e2e.ti.com/support/microcontrollers/msp430/f/166/p/829666/3068654

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

    例如、驱动程序库中的以下示例代码:

    CRC32_setSeed (CRC32_init、CRC32_MODE);
    
    for (i=0;i<2;i++)
    CRC32_set8BitDataReversed (MyData[i]、CRC32_MODE);
    
    long hwCalculatedCRC = CRC32_getResult (CRC32_MODE); 

    如何放入固件的整个存储器中? 我想这是整个 FRAM。

    提前感谢

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

    链接器会根据每个段计算 CRC。 [参考 SLAU131U 第8.9节]。 它会生成(地址、长度、CRC)条目的表供您浏览。

    链接器无法预测其创建的加载映像之外的 FRAM/Flash 中的内容。 我想你可以在启动时根据(所有) FRAM 当时的实际内容生成一个新的 CRC,然后定期检查,例如是否有意外覆盖。 这不会取代启动检查、以确保加载的映像完好无损。

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

    嗨、Thibult、

    驱动程序库用户指南介绍了可用的 CRC API。  您似乎熟悉这一点、而这正是您找到编程示例的地方。  我将在下面链接它以供将来的读者参考。  但是的、您只需采用该示例并通过整个 FRAM 部分、因为您一次关心8、16或32位、然后将计算 CRC 与已知的良好值进行比较。   

    谢谢、

    JD

     Driverlib 用户指南可在以下位置找到: http://dev.ti.com/tirex/explore/node?node=AKv1SOF.GRG4cnDRpAwssg__IOGqZri__LATEST