реклама на сайте
подробности

 
 
> CRC32 для 8бит, помогите найти медленные исходники
west329_
сообщение Apr 4 2008, 12:37
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Столкнулся с проблемой реализации CRC32 функции для контроллера на С. В сети множество исходников но они все используют так сказать быстрый расчет, обычно генерирую динамическую таблицу в озу 255 Long значений ? 1kb озу сразу седает, есть ещё вариант со статической таблицей промежуточных полиномов, но от этого тоже легче седается 1kb памяти прграммы sad.gif. Но есть ещё медленная релизация алгоритма для 32бит полиномиальная, встречалась мне для crc16 и crc8? н о для crc32 так нигде и не нашол.

Подскажите если ктото сталкивался ?
С ув.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aleksey_g
сообщение Apr 4 2008, 13:15
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066



Встретил вот такое:
Код
unsigned long CalcCRC32(unsigned long CRC, unsigned char Symbol)
{
   unsigned long temp;
   CRC ^= 0xFFFFFFFF ^ Symbol;
   for(int k = 8; k--;)
      {
      temp = -(CRC & 1), CRC >>= 1, CRC ^= 0xEDB88320ul & temp;
      }
   CRC ^= 0xFFFFFFFF;
   return CRC;
}

и на паскале

function calccr32(crc:longword;symbol:integer):longword;
var k:integer;
    temp:longword;
begin
crc:= crc xor ($FFFFFFFF xor symbol);
for k:=0 to 7 do
begin
temp:= -(CRC and 1);
crc:=crc shr 1;
crc:=crc xor 3988292384 and temp;
end;
crc:=crc xor $FFFFFFFF;
calccr32:=crc;
end;
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016