Frage

Ich versuche derzeit, einen CRC-32 für einen eingehenden Datenstream (serielle Kommunikation) auf einem Atmega1280 zu implementieren, und ich bin ein bisschen verloren, wie er dies auf der eingebetteten Seite in C .... falls jemand einrichten könnteDie richtige Richtung und / oder Hilfe, in der ich trotzdem sehr schätzen würde ...

War es hilfreich?

Lösung

Sie sollten wissen, mit welchem Polynom, mit dem Sie handeln.Es reicht also nicht aus, zu wissen, dass Sie CRC verwenden, aber Sie sollten auch das Polynom kennen.

Sie suchen eine Funktion mit dieser Art von Prototyp generasacodicetagpre.

oder sogar ferner kann diese Funktion auch die Aktualisierung unterstützen, wenn Sie Ihre Daten asynchron abrufen, sodass zusätzlicher Parameter zum Wiederaufnahme der Berechnung vorhanden ist.

Mit CRC32 stromströmen Sie Bits über die CRC-Funktion und Sie erhalten eine 32-Bit-Nummer, die für die Daten-Korruptionsprüfung verwendet wird.

Ich bin sicher, dass Sie den C-Code von CRC Online finden können.

edit:

Es sieht so aus, dass CRC32-Polynom sortiert ist und normalerweise vereinheitlicht ist. Das bedeutet, dass die CRC32-Implementierung das richtige Polynom verwenden wird.

http://en.wikipedia.org/wiki/computation_of_crc

Andere Tipps

Es gibt viele CRC-32-Implementierungen in C. Der AT MEGA1280 verfügt über 128 KB Codeplatz, es hat keine Probleme mit der Durchführung eines Off-the-Regal-Implementats.

hier ist so ziemlich der erste, den ich gefunden habe. .

Copy-Paste-Lösung für AVR, gerippt von hier : generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top