CRC Berechnung

Gast #5049237
Lesenswert?

Hallo, in einer vorhanden Applikation auf einem Embedded System wird die 
Prüfsummenberechnung folgendermassen durchgeführt:
1
// Implementierung Prüsummenberechnung
2
unsigned char CalculateChecksum(unsigned char *ptrData, unsigned long Length, unsigned long *ptrChecksum )
3
{
4
  for ( unsigned long x = 0; x < Length; x++ )
5
  {
6
    *ptrChecksum += ptrData[ x ];
7
  }
8

9
  return 0;
10
}
1
StartValue = 0xAAAAAAAA;
2
CalculateChecksum(Data, 500, &StartValue);

Hier erkenne wird kein Polynom für die Prüfsummenbildung verwendet.
Gast #5050080
Lesenswert?

Patrick C. schrieb:

>>> Ich war der Meinung das die obige Implementierung ein Polynom benötigt
> für die Berechnung der Checksum
>
> Wenn es eine CRC waehre ja, aber ein Checksum ist kein CRC.

OMG. Keine Ahnung, aber große Fresse.

Auch so eine primitive Prüfsumme IST theoretisch betrachtet natürlich 
eine CRC. Es ist halt bloß halt kein "gute" CRC...

Das Polynom sollte schlicht "1" sein, wenn mich nicht alles täuscht.
Gast #5050218
Lesenswert?

@c-hater
> Auch so eine primitive Prüfsumme IST theoretisch betrachtet natürlich
> eine CRC. Es ist halt bloß halt kein "gute" CRC...
Nee, so eine primitive Pruefsumme ist theoretisch NICHT zyklisch. Wenn 2 
bytes verwechselt werden, wird das von eine addierung nicht detectiert. 
Von jede Cyclic Redundancy Check wird das detectiert.

Der meist primitiven CRC ist CRC-1 und das ist der einzige der 
eigentlich nicht zyklisch ist.
Quelle : https://tools.ietf.org/html/rfc3385

CRC kann benennen als Checksum aber ein Checksum braucht nicht CRC zu 
sein.

Ja, ich bin einverstanden es wird im die Sprache oft durcheinander 
benutzt, aber das ist meiner meinung das gleiche als ob man sagt es 
steht Strom auch die Buchse.

Wenn du andere Quellen hast, moechte ich die gerne wissen um wen noetig 
meine meinung beizustellen.

@run
Sorry fuer die off-topic, aber hoffentlich ist jetzt deine frage 
beantwortet

@Vaterschaftstest-Beauftragte
>Bist Du sein Bruder?
Nee, soweit ich weis gibt es keine Trollen in meine familien...
Moderator #5050491
Lesenswert?

c-hater schrieb:
> OMG. Keine Ahnung, aber große Fresse.

Bedeutet "c-hater", dass du c_hecks kategorisch ablehnst, vor allem
dann, wenn sie c_yclic sind? Das würde jedenfalls deine unqualifizierte
Reaktion erklären ;-)

> Auch so eine primitive Prüfsumme IST theoretisch betrachtet natürlich
> eine CRC. Es ist halt bloß halt kein "gute" CRC...

Nein, es ist natürlich keine, auch keine schlechte.

> Das Polynom sollte schlicht "1" sein, wenn mich nicht alles täuscht.

Du täuschst dich. Bei einer CRC mit Polynom 1 ist die Länge des
CRC-Werts 0. Es werden also überhaupt keine Prüfbits an die Nutzdaten
angehängt, und damit können auch keine Fehler erkannt werden.
Gast #5051227
Lesenswert?

Yalu X. schrieb:

> Du täuschst dich. Bei einer CRC mit Polynom 1 ist die Länge des
> CRC-Werts 0. Es werden also überhaupt keine Prüfbits an die Nutzdaten
> angehängt, und damit können auch keine Fehler erkannt werden.

Stimmt. Das Polynom ist natürlich tatsächlich nicht 1.

Das wäre es nur in der üblichen Schreibweise, bei der das höchstwertige 
Glied nicht mitgeschrieben wird. Gerade die grenzdebile C-Wichser mit 
ihrem idiotischen Trieb, alles in die ihnen bekannten Datentypen zu 
fassen, haben ja diese völlig idiotische Konvention erfunden, weil eben 
das höchste Glied des Polynoms immer gerade nicht in ihren Datentyp 
reinpasste und sie von sowas wie einem Carry-Flag nach der reinen Lehre 
garnix wissen dürfen...

Also: das Polynom ist natürlich vollständig 0x101 (extra für dich in 
C-Notation, damit du nicht behaupten kannst, du hättest da etwas 
missverstanden). Nun darfst du nochmal argumentieren...
Moderator #5051295
Lesenswert?

Georg A. schrieb:
> Ich kann mir gerade nicht vorstellen, wie das Übertragsbit der Addition
> in die nächsthöhere Stelle bei der reinen XOR-CRCerei im Polynom
> dargestellt werden kann ;)

Ich auch nicht.

Aber c-hater steht wohl nicht nur für cyclic-hater und check-hater,
sondern vor allem auch für carry-hater. Er hasst die Überträge so sehr,
dass er sie einfach unter den Tisch fallen lässt :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren