STM32F10x 学习笔记4(CRC计算单元 续)
时间:11-20
来源:互联网
点击:
- for(;num>
- nedintnWords,uint32_tremainder)
- {
- unsignedintoffset;
- unsignedcharbyte;
- unsignedchar*p=(unsignedchar*)message;
- //width_tremainder=INITIAL_REMAINDER;
- /*Dividethemessagebythepolynomial,abyteatatime.*/
- for(offset=0;offset
- {
- byte=(remainder>>(WIDTH-8))^p[3];
- remainder=crcTable[byte]^(remainder<8);
- byte=(remainder>>(WIDTH-8))^p[2];
- remainder=crcTable[byte]^(remainder<8);
- byte=(remainder>>(WIDTH-8))^p[1];
- remainder=crcTable[byte]^(remainder<8);
- byte=(remainder>>(WIDTH-8))^p[0];
- remainder=crcTable[byte]^(remainder<8);
- p+=4;
- }
- /*ThefinalremainderistheCRCresult.*/
- return(remainder);
- }/*crcCompute()*/
大家可以验证这个函数的计算结果与STM32上的结果完全一样。
写到这里本该就结束了,不过我要多说一句,之所以要这么麻烦的调换字节序,都是小端(littleendian)惹的祸。要是都采用大端格式就没这些麻烦的转换了。
STM32F10xCRC计算单 相关文章:
- STM32F10x 学习笔记3(CRC计算单元)(11-20)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)