硬汉嵌入式论坛

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

[J-Link] 用JFlash打开hex或bin的出现CRC值,算式分享

[复制链接]

210

主题

1045

回帖

1685

积分

至尊会员

More we do, more we can do.

积分
1685
发表于 2020-7-29 23:23:13 | 显示全部楼层 |阅读模式
本帖最后由 emwin 于 2020-7-29 23:25 编辑

出处:https://wiki.segger.com/CRC

  1. U32 CRC_Calc(const U8* pData, unsigned NumBytes, U32 crc, U32 Polynom) {
  2.   int i;
  3.   U8 Data;
  4.   U8 Xor;

  5.   do {
  6.     Data = *pData++;
  7.     i = 8;
  8.     do {
  9.       Xor = crc ^ Data;
  10.       crc >>= 1;
  11.       if (Xor & 1)
  12.         crc ^= Polynom;
  13.       }
  14.       Data >>= 1;
  15.     } while (--i);
  16.   } while (--NumBytes);
  17.   return crc;
  18. }
复制代码

The CRC used is the CRC32-CCITT polynomial.
Normal form: 0x04C11DB7
Reversed form: 0xEDB88320 (used by J-Flash)
Please note, that the initial CRC used for the calculation is 0x00000000 (some calculators use 0xFFFFFFFF).

回复

使用道具 举报

1

主题

65

回帖

68

积分

初级会员

积分
68
发表于 2020-7-30 01:25:51 | 显示全部楼层
一个Polynom 和 初值 特定的标准CRC算法
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2020-7-30 08:05:12 | 显示全部楼层
确实方便了
QQ截图20200730080509.png
回复

使用道具 举报

210

主题

1045

回帖

1685

积分

至尊会员

More we do, more we can do.

积分
1685
 楼主| 发表于 2020-7-30 09:45:30 | 显示全部楼层
验证了,算出来跟JFlash是一致的,其中代码里12行的if少了个大括号。(Segger也有不严谨的时候啊)
回复

使用道具 举报

12

主题

141

回帖

177

积分

初级会员

积分
177
发表于 2021-3-8 08:07:20 | 显示全部楼层

没有看明白你这个怎么用楼主提供的CRC代码进行实现的
回复

使用道具 举报

12

主题

141

回帖

177

积分

初级会员

积分
177
发表于 2021-3-8 09:34:24 | 显示全部楼层

没有看明白你这个是怎么用楼主提供的CRC代码进行实现的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 02:33 , Processed in 0.270546 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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