关于STM32F4 内部硬件CRC MPEG-2的问题记录

首先以下内容由搜索网络并学习实践得到,主要用作记录使用。

在使用固件升级时会对固件进行完整性校验,使用STM内部硬件CRC与CRC在线计算 (lddgo.net)

MPEG-2生成的值不一致,主要由两个原因造成。

1、文件长度值,文件长度是以字节为单位,假设我们使用U盘升级,读取到的数据长度为64,那么实际校验长度为16。

res=f_read(&USBHFile,RAM_Buffer,sizeof(RAM_Buffer),(void *)&APP_Size);

HAL_CRC_Calculate(&hcrc,(uint32_t *)FLASH_USER_START_ADDR, APP_Size/4-1);//由于校验值放到最后一个位置,所以需要减去1。

2、以上操作后校验值依然不同,我们看下图

确定两个值不同,网上有说是PC与MCU的大小端什么的不同,搞不懂,但是确实不一样,那么把这个弄成一样计算结果就相同了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值