谁来帮我分析一段crc校验码下。

[复制链接]
2919|2
 楼主| mingyuekd 发表于 2009-9-15 22:53 | 显示全部楼层 |阅读模式
unsigned int cal_crc(unsigned char *ptr, unsigned char len)
{
   unsigned  int  crc ;
   unsigned  char  da ;
   /* CRC 余式表 */
   unsigned int crc_ta[16]={   0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
                               0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef
                            };
   crc=0;
   while(len--!=0)
   {
   da=((unsigned char)(crc/256))/16; /* 暂存CRC 的高四位 */
   crc<<=4; /* CRC 右移4 位,相当于取CRC 的低12 位)*/
   crc^=crc_ta[da^(*ptr/16)]; /* CRC 的高4 位和本字节的前半字节相加后查表计算CRC,然后加上上一次CRC 的余数 */
   da=((unsigned char)(crc/256))/16; /* 暂存CRC 的高4 位 */
   crc<<=4; /* CRC 右移4 位, 相当于CRC 的低12 位) */
   crc^=crc_ta[da^(*ptr&0x0f)]; /* CRC 的高4 位和本字节的后半字节相加后查表计算CRC,然后再加上上一次CRC 的余数 */
   ptr++;
   }
   return(crc);
}
在msp430环境中,下载仿真没问题。但我在memory里面看crc的值。怎么没有,应该是两个字节crc值。没找到在上面地方。用鼠标点击到那看不到地址。也就看不了crc值。
hotpower 发表于 2009-10-30 22:44 | 显示全部楼层
这就是所谓的“CRC位域4表”:

CRC位域多表查表方法 2009/10/16 15:17:31

CRC16CCITT(1021)的16字表长查表程序 2009/10/18 17:28:03

校验及生成工具:http://www.hotc51.com/HotPower_HotWC3.html


空外之旅 发表于 2010-9-17 11:11 | 显示全部楼层
学习下,改天说不定要用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

151

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部