【简介】
以下是S32K3 芯片内部的CRC 模块的功能框图,软件上校验CRC的场景是可以使用该模块来完成。

本地通过S32DS config tool 配置硬件CRC的参数配置。

生成代码后CRC的驱动代码会被加入工程中。

以下是手册中对常用CRC32算法的参数配置说明。

本地编写如下测试代码,本地编译的镜像中已经添加了CRC32的信息,使用CRC 来校验镜像的正确性。
uint8_t image_crc_check(uint32_t start_addr, uint32_t length, uint32_t crc_value)
{
Crc_Ip_Init(&CrcIp_xConfigInit);
Crc_Ip_SetChannelCalculate(0,(uint8_t*)start_addr,length,0xffffffff,TRUE);
uint32_t crc_result = (uint32_t)Crc_Ip_GetChannelResult(0);
LOGI("CRC","IMAGE CRC %08lx IMG %08lx.", crc_result, crc_value);
return (crc_result == crc_value) ? 1 : 0;
} 本地CRC的计算结果和通过脚本计算的数值是一致的。

我要赚赏金
