avr: use provided polynomial.

This commit is contained in:
Martin Preuss
2024-09-12 11:46:44 +02:00
parent cb43378a2f
commit 0107330c32

View File

@@ -8,31 +8,22 @@
; *************************************************************************** ; ***************************************************************************
; ***************************************************************************
; defines
.equ CRC8_POLYNOMIAL = 0x97 ; HD=4 up to 119 bytes, e.g. detects all 1 to 3 bit errors
.cseg .cseg
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
; @routine crc8Calc @global
; calc crc8 checksum using given polynomial ; calc crc8 checksum using given polynomial
; ;
; IN: ; @return r16 crc8 checksum
; - X : pointer to data to calc crc8 for ; @return X points directly after last checked byte
; - r18: number of bytes to calc crc8 for ; @param X pointer to data to calc crc8 for
; OUT: ; @param r18 number of bytes to calc crc8 for
; - r16: crc8 checksum ; @param r19 polynomial to use
; - X : point directly behind the checked area ; @clobbers: R16, R17, R18, R20, X
; MODIFIED REGS: R16, R17, R18, R19, R20, X
crc8Calc: crc8Calc:
ldi r16, 0xff ; crc ldi r16, 0xff ; start crc
ldi r19, CRC8_POLYNOMIAL
crc8Calc_loop1: crc8Calc_loop1:
ld r17, X+ ; running var ld r17, X+ ; running var
@@ -48,6 +39,7 @@ crc8Calc_l1:
dec r18 dec r18
brne crc8Calc_loop1 brne crc8Calc_loop1
ret ret
; @end