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.

[参考译文] RM48L952:RM48L952 CRC 外设

Guru**** 2536850 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/826653/rm48l952-rm48l952-crc-peripheral

器件型号:RM48L952

您好!

我们开始使用 RM48的 CRC 生成器。 根据文档(关于 spnu503c - RM48x 技术参考手册的第14.1节)、它可以生成8、16、32和64个数据大小的数据压缩、我从中了解生成的 PSA 签名可以配置为8 、16、32和64位。

我们成功地使用 FULL_CPU_MODE (基于 spna235 -在 Hercules -基德微控制器上使用 CRC 模块)在 EMIF SDRAM 上生成一组数据的 CRC64、而不会出现任何问题

但是、我们的应用需要 CRC32、但我没有找到有关如何执行它的参考。

有人能告诉我哪里可以获得有关如何使用嵌入式 CRC 生成器生成 CRC32的信息?

当前使用的代码为:

uint64_t 计算 HWCrc64Signature (uint64_t * data、uint32_t len)
{
uint64_t return_value;
crcModConfig_t CRC_param;
crcConfig_t CRC_CONFIG;

CRC_CONFIG.CRC_CHANNEL = CRC_CH1;
CRC_CONFIG.MODE = CRC_FULL_CPU;
crc_config.pcount = 0U;//所有计数器在完全 CPU 模式下被禁用*/
crc_config.scount = 0U;//所有计数器在完全 CPU 模式下被禁用*/
CRC_CONFIG.WDG_PRELOAD = 0U;//所有计数器在完全 CPU 模式下被禁用*/
CRC_CONFIG.BLOCK_PRELOAD = 0U;//所有计数器在完全 CPU 模式下被禁用*/
crcSetConfig (crcREG、&CRC_CONFIG);

crc_param.crc_channel = crc_config.crc_channel;
crc_param.mode = crc_config.mode;

crc_param.src_data_pat =(uint64_t *) data;
crc_param.data_length = len;

crcChannelReset (crcREG、CRC_CH1);
crcSignGen (crcREG、&CRC_param);
return_value = crcGetPSASig (crcREG、CRC_CH1);

返回 return_value;
} 

以下线程仅提供补充功能、即可与 CRC16进行交易、到那时(2013)、这是不可能的。

e2e.ti.com/.../287774

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

    您好!

    当 一个 CRC 的校验值  为 n 位长时、它被称为 n 位 CRC。 Hercules MCU 上的 CRC 模块 使用 TRM 中列出的64位基元多项式。 CRC HW 不能为其他多项式(例如 CRC-32)生成 CRC 值。

     

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

    感谢 QJ Wang!

    此致、

    Nton Armstrong