Forum: Mikrocontroller und Digitale Elektronik Checksumme BIN-Datei (von EPROM)


von Markus (Gast)


Lesenswert?

Hallo,
ich bin in den Besitz von mehreren .bin Dateien welche Daten von EPROMs 
oder Flashs enthalten.

Wie kann ich die Checksumme von diesen Dateien erstellen.
Als Betriebssystem findet Ubuntu bei mir Verwendung.

Die Daten werden mit einen Galep 5 auf die Eproms bzw. den Flash 
geschrieben, in Galep wird mir auch eine Checksumme angezeigt genau 
diese möchte ich auch berechnen.
Wie wird das technisch gelöst? Bsp. für eine Checksumme: 00AA6E84

Danke

von Cyblord -. (cyblord)


Lesenswert?

Es gibt nicht DIE Checksumme. Es gibt haufenweise Verfahren zum 
Erstellen einer Checksumme. Die üblichen Verdächtigen sind das gute alte 
XOR, dann CRC, dann die krypt. Hashfunktionen MD5 und SHA1.

von dummschwaetzer (Gast)


Lesenswert?

Ist meistens CRC
In deinem Fall also CRC32.
Brauchst du also nur noch Polynom und Startwert.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Hier kannst Du Dir mein Tool runterladen, es berechnet CRC und SHA1 
Prüfsummen von Binärdateien, kannst sie damit gleich im Hex-Editor 
ansehen und ggf. ändern / mergen etc.

http://www.wolfgangrobel.de/romwizard.htm

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Wolfgang R. schrieb:
> http://www.wolfgangrobel.de/romwizard.htm

Vielen Dank für die Vielzahl an sehr interessanten Informationen, die Du 
auf Deinen Webseiten zusammengetragen hast, insbesondere auch bezüglich 
EPROMs!

Mir ist dabei aufgefallen, dass Du den Typ 5204 nicht erwähnst, obwohl 
er damals(TM) durchaus verbreitet war. Ganz im Gegenteil war mir ein 
(Intel) 2704 noch nie begegnet. Das letzte Mal, dass ich einen 5204 in 
einem neuen(!) Gerät sah, war tatsächlich im Jahr 1997, und zwar zur 
Speicherung von Kalibrierdaten in dem klobigen Stecker eines 
HF-Leistungsmesskopfes von Rohde&Schwarz. Mehrere dieser Messgeräte 
waren in einem GSM-Protkolltester TS8912 eingebaut

Damals unterhielt ich mich auch mit einem Techniker von R&S über den 
Grund für diesen Anachronismus und erfuhr, dass der Leistungsmesskopf 
von mehreren Institutionen "zertifiziert" worden sei und keine 
technischen Änderungen im Aufbau des Signalweges mehr durchgeführt 
werden dürften. Und ein Speicherbaustein für Kalibrierdaten werde aus 
Sicht der Zertifizierungsinstanz eben zum Signalweg zugehörig angesehen 
und nicht zum durchaus änderbaren Digitalteil.

von Markus (Gast)


Lesenswert?

dummschwaetzer schrieb:
> Ist meistens CRC
> In deinem Fall also CRC32.
> Brauchst du also nur noch Polynom und Startwert.

Danke dir und woher bekomme ich beides?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Markus schrieb:
> Danke dir und woher bekomme ich beides?

Anhand der Dokumentation des GALEP?

Es gibt auch einige standardisierte Polynome, mit denen Du schauen 
kannst, ob die richtigen CRC herauskommen. Einige sind hier aufgeführt:
http://de.wikipedia.org/wiki/Zyklische_Redundanzpr%C3%BCfung

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Mein ROM-Wizard verwendet die standard Polynome, die auch bei MAME 
(Arcade Emulator) für die ROM-Prüfsummen eingesetzt werden.

Einen 5204 hatte ich noch nie gesehen, danke für den Hinweis! Hat den 
jemand für mich? ;-)

2704 hab ich mittlerweile drei Stück...

von Jens (Gast)


Lesenswert?

Alternativ addiert man alle Werte zusammen und rechnet modulo 2^8 oder 
modulo 2^16. Da Du Linux verwendest, kannst Du Dir das Paket srecord 
installieren: http://packages.ubuntu.com/lucid/srecord

Damit soll man sich u.a. die Prüfsumme und CRC errechnen lassen können:
http://srecord.sourceforge.net/man/man1/srec_examples.html#DATA%20ABOUT%20THE%20DATA

Jens

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Wolfgang R. schrieb:
> Einen 5204 hatte ich noch nie gesehen, danke für den Hinweis! Hat den
> jemand für mich? ;-)

Die o.a. HF-Leistungsmessköpfe gehören leider nicht mir. Und wenn sie es 
täten, würde ich jetzt nicht mehr ruhig schlafen... :-)

Ich finde die folgenden Passagen aus dem Datenblatt des MM4204/MM5204 
recht lustig:

"Programming of the memory is accomplished by storing a charge in a cell 
location by applying a -50V pulse." und "Ilqd Vdd Load Current 
(Vdd=Program=-50V: -200mA". Das sind 10W, in Worten: ZEHN WATT. In Note 
5 findet man: "The program cycle should be repeated until the data reads 
true, then over-programmed 5 times that number of cycles."

Ein Programmierpuls darf 5ms dauern, d.h. solch ein armes Byte wird dann 
mit minimal 300mJ reingebraten, ggf. sogar mit Vielfachen dieser 
Energie.

Man benötigt kein eigenes Programmiergerät, sondern kann die Bausteine 
auch bei National Semiconductor programmieren lassen: "The custom 
patterns may be sent in on a Telex or submitted as a paper tape..."

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Der 1702 braucht ebenfalls -48V... Da versagt auch mein Data I/O 29B...

Gruselige Technik, aber geschichtlich hoch interessant!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.