硬汉嵌入式论坛

 找回密码
 立即注册
查看: 146|回复: 3
收起左侧

[STM32H7] 耽误一上午,计算CRC的第2个形参搞错了,word个数搞错了字节个数

[复制链接]

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
123004
QQ
发表于 昨天 15:22 | 显示全部楼层 |阅读模式



我说计算的CRC怎么还能动态变化,原来已经越界了。

还一直在排查任务栈空间和系统栈空间问题。。。以及各个子函数的问题

[C] 纯文本查看 复制代码
uint32_t CRC32_STM32_PC(uint32_t *di, uint32_t len)
{
  uint32_t crc_poly = 0x04C11DB7; 
  uint32_t data = 0xffffffff;

  for (uint32_t i = 0; i < len; i++)
  {
    data ^= di[i];
    for (uint8_t j = 0; j < 32; j++)
    {
	  if (data & 0x80000000)
	  {
	    data = (data << 1) ^ crc_poly;
	  }
	  else
	  {
	    data <<= 1;
	  }
    }
  }
  return (data);
}





回复

使用道具 举报

17

主题

286

回帖

337

积分

高级会员

积分
337
发表于 昨天 17:10 | 显示全部楼层
想起来,前几天用lua代码计算crc校验,死活不对,最后才发现,赋值的时候,lua没有类型约束,把uint16的数据代入了一个uint8数组的crc计算,没有类型检查,根本不知道
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
123004
QQ
 楼主| 发表于 3 小时前 | 显示全部楼层
zhang0352505 发表于 2026-6-9 17:10
想起来,前几天用lua代码计算crc校验,死活不对,最后才发现,赋值的时候,lua没有类型约束,把uint16的数 ...

我这次是读取空间越界了,我说怎么固定值还可以动态变化。防不胜防
回复

使用道具 举报

9

主题

469

回帖

496

积分

高级会员

积分
496
发表于 2 小时前 | 显示全部楼层
站长,最近网站卡的狠,我看好多人回贴,发贴都是有重复的。
偶尔开网页也需要数秒才能显示出来
是不是爬虫又多了?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-6-10 13:35 , Processed in 1.490378 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表