Ga naar inhoud
100% lokaal

Intel HEX-parser

Valideer Intel HEX-records en extraheer hun gegevens als een hex-dump.

Invoer
Uitvoer

Intel HEX-parser

Plak een Intel HEX-bestand - de ":10010000214601360121470136007EFE09D2190140" -stijl records die compilers en programmeurs produceren voor microcontrollers, EEPROM's en andere ingebedde doelen - en deze tool controleert de structuur en controlesom van elk record en extraheert vervolgens de databytes als een hex-dump. Het is gebouwd voor firmwarewerk: het verifiëren van een .hex-bestand van een leverancier voordat het wordt geflasht, het controleren van een build op een beschadigd record na een slechte samenvoeging, of het lezen van onbewerkte bytes zonder een hex-editor te openen.

Elke regel wordt geparseerd als één record: een bytetelling, een 16-bits adres, een recordtype (data, end-of-file of een van de segment-/lineaire adres- en startrecords), de databytes en een controlesom. Een record is geldig wanneer het aantal bytes overeenkomt met de aanwezige gegevens, het recordtype wordt herkend met de juiste lengte voor zijn soort, en de som van elke byte in het record op nul uitkomt modulo 256 – de standaard Intel HEX-regel. Gegevensbytes uit elk geldig gegevensrecord worden in bestandsvolgorde samengevoegd en weergegeven als een klassieke hex-dump: een offsetkolom, zestien bytes per rij en een afdrukbare ASCII-marge aan de rechterkant.

Onder de dump wordt in een validatierapport elke record vermeld die is mislukt, op regelnummer, getagd als een verkeerd opgemaakte structuur (een regel die niet goed is opgemaakt hex, een bytetelling heeft die niet overeenkomt met de lengte ervan, of een niet-herkend recordtype) of een slechte controlesom. Eén onderbroken lijn houdt de rest van het bestand niet tegen: elk ander record wordt nog steeds gecontroleerd en, indien geldig, draagt nog steeds zijn bytes bij. Schakel "Hoofdletter hex" in om de dump weer te geven met A–F in plaats van a–f, wat overeenkomt met wat uw programmeur of disassembler verwacht.

Alles draait in uw browser. Firmware-afbeeldingen en EEPROM-inhoud zijn vaak bedrijfseigen, dus niets dat hier wordt geplakt, wordt geüpload; het bestand verlaat nooit uw apparaat.

FAQ

Wat telt als een slechte controlesom versus een verkeerd opgemaakte record?
Een record met een onjuiste indeling is een record waarvan de structuur is verbroken: het begint niet met eerder, is niet geldig hex, het aantal bytes komt niet overeen met de werkelijke lengte, of het recordtype wordt niet herkend. Een record met een geldige structuur maar een controlesom die niet op nul uitkomt mod 256 wordt afzonderlijk gerapporteerd als een slechte controlesom; de gegevens ervan worden nog steeds geëxtraheerd, omdat de bytes zelf goed gevormd zijn.
Welke recordtypen begrijpt het?
Gegevens (00) en einde-van-bestand (01), plus het uitgebreide segmentadres, startsegmentadres, uitgebreid lineair adres en start lineaire adresrecords (02–05). Alleen gegevensrecords dragen bytes bij aan de uitvoer; de andere zijn gevalideerd op structuur, maar bevatten geen uitvoergegevens.
Hoe zijn de databytes in de uitvoer ingedeeld?
Ze worden aaneengeschakeld in de volgorde waarin hun records in het bestand verschijnen, en niet op hun recordadressen. De uitvoer is de ruwe gegevensstroom en geen geheugenafbeelding.
Zorgt één onderbroken lijn ervoor dat het hele bestand niet wordt geparseerd?
Nee. Elk record wordt onafhankelijk gecontroleerd, dus een enkele onjuist opgemaakte of onjuiste controlesomregel wordt vermeld in het validatierapport, terwijl elk ander geldig record nog steeds zijn bytes parseert en bijdraagt.
Wordt mijn HEX-bestand ergens geüpload?
Nee. Het parseren gebeurt volledig in uw browser; de firmware en EEPROM-inhoud die u hier plakt, wordt nooit naar een server verzonden.