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.

[参考译文] TMS570LS0432:关于 TMS570LS RAM 和闪存检测

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/939332/tms570ls0432-about-tms570ls-ram-and-flash-detect

器件型号:TMS570LS0432

你好  

团队

 我的系统需要检测闪 存和 RAM,、因此我使用代码所在的 ti 库

闪存

startup.C 为
crcAtInit_FLASH = sl_CRC_Calculate ((uint64 *)((UINT32)&ulFlashStartAddr)、(((((UINT32)&ulFlashEndAddr)-(((UINT32)&ulFlashStartAddr))>> 6));

是的  

/*在闪存上运行 CRC 校验*/

if (sl_CRC_Calculate ((uint64 *)((UINT32)&ulFlashStartAddr)、(((((UINT32)&ulFlashEndAddr)-(((UINT32)&ulFlashStartAddr)))>> 6)= crcAtInit_FLASH)

//pass

其他

//失败

--------------------------------------------------

RAM

startup.C 为

crcAtInit_VIMRAM = sl_CRC_Calculate ((((uint64 *) 0xFFF82000)、48);

是的  

if (sl_CRC_Calculate (((uint64 *)(uint32*) 0xFFF82000)、48)= crcAtInit_VIMRAM)

其他

是正确的?

 谢谢你

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

    黄先生、您好!

    通过计算一个针对所有闪存内容的 CRC 并将这个值与一个之前生成的"黄金" CRC 相比较、CRC 模块可被用于测试闪存内容的完整性。 "黄金"CRC 是闪存内容编程到闪存时的 CRC 值。 使用 startup.c 中计算出的 CRC 值作为“黄金”CRC 值来检查 main ()中计算出的 CRC,这毫无意义。

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

    你好

    您的意思 是,我需要  计算  "黄金"CRC? 并编程到闪存中?

    如何计算黄金 CRC, 以及 RAM 是否与闪存?相同

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

    你好  

     在 startup.c 中

    crcAtInit_VIMRAM = sl_CRC_Calculate ((((uint64 *) 0xFFF82000)、48);

    crcAtInit_FLASH = sl_CRC_Calculate ((uint64 *)((UINT32)&ulFlashStartAddr)、(((((UINT32)&ulFlashEndAddr)-(((UINT32)&ulFlashStartAddr))>> 6));

     将在 startup.c 中计算出的 CRC 值作为"crcAtInit_VIMRAM" 和"crcAtInit_flash" 来检查在 main()中计算出的 CRC 是没有意义的。

    为什么选择?

    为什么不会出现任何问题??

     谢谢你

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

    谁能告诉我?

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

    主要目的是检查闪存内容是否因任何原因而更改、因此您将计算出的 CRC 与"黄金" CRC 进行比较。 "黄金"CRC 通常是在您将闪存编程到闪存时计算出的闪存内容的 CRC 值。  

    您可以使用 startup.c 中计算的 CRC 作为“黄金”CRC 值,并将其与 main()中计算的 CRC 进行比较。 理论上没有问题。 但我在实际应用中看不到这种优势。