Ответ: Посмотри это , но я точно не уверен
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено MALLOY 18 июня 2004 г. 10:05
В ответ на: Коллеги, поделитесь, пожалуйста, программой на С для подсчёта 32-битного CRC (аналогичного Ethernet стандарту). Только с полиномом в табличной форме не надо. К Гуглю просьба не посылать - уже был. отправлено Вяч 18 июня 2004 г. 09:28

/*
;-------------------------------------------------------------------------
; CKSUM.A51
;
; This computes the internet checksum on an 8051
;
; Call from C program: UINT cksum(UCHAR xdata * buf, UINT length);
; Where * buf is pointer to first char (must be in xdata space)
; and "length" is number of bytes (not words) to sum over
;-------------------------------------------------------------------------
*/
#include "net.h"

UINT cksum(UCHAR xdata *check,UINT length)
{
LONG sum=0;
UINT i;
UINT xdata *ptr;
ptr=(UINT xdata *)check;
for (i=0;i<(length)/2;i++)
{
sum+=*ptr++;
}
if (length&0x01)
{
sum=sum+((*ptr)&0xff00);
}
sum=(sum&0xffff)+((sum>>16)&0xffff);
if(sum&0xffff0000)
{
sum++;
}
return ( (UINT)((sum)&0xffff));
// return ( (UINT)(~((sum)&0xffff)));
}

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru