Zum Inhalt springen
100% lokal

Intel HEX-Parser

Validieren Sie Intel HEX-Datensätze und extrahieren Sie ihre Daten als hex-Dump.

Eingabe
Ausgabe

Intel HEX-Parser

Fügen Sie eine Intel HEX-Datei ein – die Datensätze im Stil „:10010000214601360121470136007EFE09D2190140“, die Compiler und Programmierer für Mikrocontroller, EEPROMs und andere eingebettete Ziele erstellen – und dieses Tool überprüft die Struktur und Prüfsumme jedes Datensatzes und extrahiert dann die Datenbytes als hex-Dump. Es wurde für Firmware-Arbeiten entwickelt: Überprüfen einer .hex-Datei eines Anbieters vor dem Flashen, Überprüfen eines Builds auf einen beschädigten Datensatz nach einer fehlerhaften Zusammenführung oder Lesen von Rohbytes, ohne einen hex-Editor zu öffnen.

Jede Zeile wird als ein Datensatz geparst: eine Byteanzahl, eine 16-Bit-Adresse, ein Datensatztyp (Daten, Dateiende oder einer der Segment-/linearen Adress- und Startdatensätze), die Datenbytes und eine Prüfsumme. Ein Datensatz ist gültig, wenn seine Byteanzahl mit den vorhandenen Daten übereinstimmt, sein Datensatztyp mit der richtigen Länge für seine Art erkannt wird und die Summe jedes Bytes im Datensatz Null Modulo 256 ergibt – die Standardregel HEX von Intel. Datenbytes aus jedem gültigen Datensatz werden in Dateireihenfolge verkettet und als klassischer hex-Dump gerendert: eine versetzte Spalte, sechzehn Bytes pro Zeile und ein druckbarer ASCII-Steg auf der rechten Seite.

Unterhalb des Speicherauszugs listet ein Validierungsbericht jeden fehlgeschlagenen Datensatz nach Zeilennummer auf, der entweder als fehlerhafte Struktur (eine Zeile, die nicht wohlgeformt ist hex, deren Byteanzahl nicht mit ihrer Länge übereinstimmt, oder als unbekannter Datensatztyp) oder als fehlerhafte Prüfsumme gekennzeichnet ist. Eine gestrichelte Zeile stoppt den Rest der Datei nicht: Jeder andere Datensatz wird weiterhin überprüft und trägt, sofern gültig, weiterhin seine Bytes bei. Aktivieren Sie „Großbuchstaben hex“, um den Dump mit A–F anstelle von a–f zu rendern, entsprechend den Erwartungen Ihres Programmierers oder Disassemblers.

Alles läuft in Ihrem Browser. Firmware-Images und EEPROM-Inhalte sind oft proprietär, daher wird nichts, was hier eingefügt wird, hochgeladen – die Datei verlässt Ihr Gerät nie.

Häufige Fragen

Was gilt als fehlerhafte Prüfsumme im Vergleich zu einem fehlerhaften Datensatz?
Ein fehlerhafter Datensatz ist ein Datensatz, dessen Struktur fehlerhaft ist: Er beginnt nicht mit „:“, ist nicht gültig hex, seine Byteanzahl stimmt nicht mit seiner tatsächlichen Länge überein oder sein Datensatztyp wird nicht erkannt. Ein Datensatz mit gültiger Struktur, aber einer Prüfsumme, deren Summe nicht Null ist (Mod. 256), wird separat als fehlerhafte Prüfsumme gemeldet – seine Daten werden trotzdem extrahiert, da die Bytes selbst wohlgeformt sind.
Welche Datensatztypen versteht es?
Daten (00) und Dateiende (01) sowie die Datensätze für erweiterte Segmentadresse, Startsegmentadresse, erweiterte lineare Adresse und lineare Startadresse (02–05). Nur Datensätze tragen Bytes zur Ausgabe bei; Die anderen werden hinsichtlich ihrer Struktur validiert, enthalten jedoch keine Ausgabedaten.
Wie sind die Datenbytes in der Ausgabe angeordnet?
Sie werden in der Reihenfolge verkettet, in der ihre Datensätze in der Datei erscheinen, und nicht an ihren Datensatzadressen platziert – die Ausgabe ist der Rohdatenstrom, kein Speicherbild.
Verhindert eine unterbrochene Zeile, dass die gesamte Datei analysiert wird?
Nein. Jeder Datensatz wird unabhängig geprüft, sodass eine einzelne Zeile mit fehlerhaftem Format oder fehlerhafter Prüfsumme im Validierungsbericht aufgeführt wird, während jeder andere gültige Datensatz weiterhin seine Bytes analysiert und beisteuert.
Wird meine HEX-Datei irgendwo hochgeladen?
Nein. Das Parsen erfolgt vollständig in Ihrem Browser – Firmware- und EEPROM-Inhalte, die Sie hier einfügen, werden niemals an einen Server gesendet.