jak policzyc crc dla flasha w avr

Jan 16, 2006 2 Replies

Witam Chcę policzyć sumę crc zawartości flasha w avr. W libc są do tego procedury np: crc16_update(..). Nie bardzo jednak wiem jak tą funkcje użyć do policzenia całego flasha. Czy mam dla każdej komórki wywołać crc16_update() i dodać wyniki do siebie?



Pozdrawiam Krzysztof Szmurło


Mon, 16 Jan 2006 15:18:07 +0100, na pl.misc.elektronika, Krzysztof Szmurło napisał(a):

Cześć Krzysztof. Prawie - tylko nie dodajesz a obrabiasz w pętli otrzymywany z funkcji wynik. Tak np. ustawiam crc16 dla bufora nadajnika uart ( ostatnie 2 bajty ) :

void SetTxCrc(void) { uint CrcCalcValue; int j;

CrcCalcValue = 0xffff; for (j=0;j<(TX_SIZE-2);j++) CrcCalcValue = _crc16_update(CrcCalcValue,TxBuffer[j]); memcpy((uchar*)&TxBuffer[TX_SIZE-2],(uchar*)&CrcCalcValue,2); }

U Ciebie zamiast bajtów TxBuffer będą kolejne bajty flasha.

Jurek Szczesiul napisał(a):

A też mi taka idea świtała w głowie, ale nie byłem jej pewien (jakoś się crc jeszcze nie miałem okazji bawić). W każdym razie dzięki wielkie za pomoc, jutro to przetestuje.

Pozdrawiam Krzysztof Szmurło

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required