-
Data: 2011-02-15 12:20:04
Temat: Re: Jak się liczy CRC dla (x^24+4x^3+3x+1)
Od: Piotr Gałka <p...@C...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "Adam Dybkowski" <a...@4...pl> napisał w wiadomości
news:ijc7pv$hc5$1@news.onet.pl...
>
> Tyle że w dokumentacji Atmela jest błąd i w rzeczywistości CRC jest
> liczone wg bardziej powszechnego wzoru:
>
> x^19 + x^4 + x^3 + x^1 + 1
>
> http://www.avrfreaks.net/index.php?name=PNphpBB2&fil
e=printview&t=29418
Może komuś się przyda moja wersja tego CRC:
dword crcXmega(byte *buf,dword n,dword crc)
{
for(n>>=1;n--;buf+=2)crc=(crc<<1)^*(word*)buf^((crc&
0x800000)?0x80001B:0);
return crc&0xFFFFFF;
}
Wynik zgodził mi się dla wszystkich sum liczonych przez XMEGA po skasowaniu
(3 wyniki) i po wpisaniu programu z bootloaderem (kolejne 3).
Na maszynie mającej odwrotną kolejność bajtów w word mój zapis nie zadziała.
Nie wnikałem jak to działa bez obracania 16 razy (bo 2 bajty za jednym
ruchem) po bicie, ale sądzę, że przyczyną jest duża odległość między bitem
x^19 a następnymi. I tak brakuje mi gdzieś przesunięcia o 8 w jedną albo o
16 w drugą.
Zastanawia mnie też to, że do XOR użyta jest liczba, która by odpowiadała
zapisowi x^23 + x^4 + x^3 + x^1 + 1.
Czy brak obracania może mieć związek z zastąpieniem x^19 przez x^23. Gdyby
różnica była 8, ale jest 4.
Mam podejrzenie, że to crc tak na prawdę nie jest opisane żadnym z tych
wielomianów.
P.G.
Dla porównania oryginał:
--------------------------
#define CRC32_POLY (0x0080001BUL) /* Polynomial for use with Xmega 'A'
devices */
/* This CRC Routine is the corresponding routine implemented in Xmega
hardware: */
uint32_t CRC_Reference( uint32_t startWord_u32, uint32_t endWord_u32 )
{
uint32_t addr_u32, data_reg_u32, help_a_u32, help_b_u32;
uint32_t crc_reg_u32 = 0;
for( addr_u32 = startWord_u32; addr_u32 <= endWord_u32; addr_u32 += 2 )
{
help_a_u32 = crc_reg_u32 << 1;
help_a_u32 &= 0x00FFFFFEUL; /* Always act as 24-bit variable */
help_b_u32 = crc_reg_u32 & (1UL << 23);
if( help_b_u32 > 0 )
{
help_b_u32 = 0x00FFFFFFUL;
}
data_reg_u32 = SP_ReadWord( addr_u32 );
crc_reg_u32 = (help_a_u32 ^ data_reg_u32) ^ (help_b_u32 & CRC32_POLY);
crc_reg_u32 = crc_reg_u32 & 0x00FFFFFFUL;
}
return( crc_reg_u32 );
}
Następne wpisy z tego wątku
- 15.02.11 14:52 J.F.
- 15.02.11 15:48 Piotr Gałka
Najnowsze wątki z tej grupy
- Pierwsza mapa kosmosu w 102 długościach fal podczerwieni! To początek nowej ery w astronomii
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- zasilacz
- Zegary DCF
- pompa CO
- 2,5 x więcej niż Li-Ion
- Tfu! Przeklety prostokąt (czyli UPS i "sinus modyfikowany")
- Dalekopis T100 - problem z powrotem karetki
- Diody LED - oświetlenie na choinkę
- ale wiesz, że są gotowce?
- jak wykryć zapalenie żarówki?
- Cyna dylemat
- Mierniki poziomu glukozy (CGM, FGM)
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Kontrola nad prądem - sprawdź jak działa [apka - przyp. JMJ] eLicznik
Najnowsze wątki
- 2026-01-01 szyby macie całe?
- 2026-01-01 Najbogatsi ludzie na świecie są jeszcze bogatsi. Bezprecedensowa skala zysków
- 2026-01-01 Najbogatsi ludzie na świecie są jeszcze bogatsi. Bezprecedensowa skala zysków
- 2026-01-01 Wszystkiego najlepszego
- 2025-12-31 Czy potrafisz wskazać różnice? [TVN v. RMF]
- 2025-12-31 I kolejny jebnięty
- 2025-12-31 Myślenice => Specjalista ds. kontrolingu <=
- 2025-12-31 Ostróda szlachetnie walczy
- 2025-12-31 Pierwsza mapa kosmosu w 102 długościach fal podczerwieni! To początek nowej ery w astronomii
- 2025-12-31 Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- 2025-12-31 Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- 2025-12-31 Pieniadze-cuchna-oddechem-nawalonego-tatusia
- 2025-12-31 Iran na skraju gospodarczego upadku. Na ulicach Teheranu (znów) wrze. To może być cios dla reżimu
- 2025-12-30 zasilacz
- 2025-12-30 Teraz System Plików PFS z sys. op. Amiga OS będziesz mógł zamontować pod sys. op. Linuks i Jabłoko Makintosz




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]