📄 checksum.c
字号:
#include "cc.h"
u8_t checksum(u8_t *mbuf, u8_t len){
u8_t sum8;
u16_t sum16, tmp;
for (sum16 = 0; len > 0; len--){
sum16 += (u16_t)*mbuf++;
}
// First: proccess CY
tmp = (sum16 >> 8) & 0x00ff;
sum16 = (sum16 & 0x00ff) + tmp;
// Second: since CY may be happend , proccess CY again
tmp = (sum16 >> 8) & 0x00ff;
sum16 = (sum16 & 0x00ff) + tmp;
// if len <= 0xff, CY must be not happend, reassuring to get checksum
sum8 = (u8_t)sum16;
return ~sum8;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -