Przejdź do treści
100% lokalnie

Parser Intel HEX

Sprawdź rekordy Intel HEX i wyodrębnij ich dane jako zrzut hex.

Wejście
Wynik

Parser Intel HEX

Wklej plik Intel HEX — w stylu „:10010000214601360121470136007EFE09D2190140”, który kompilatory i programiści tworzą dla mikrokontrolerów, pamięci EEPROM i innych wbudowanych obiektów docelowych — a to narzędzie sprawdzi strukturę każdego rekordu i sumę kontrolną, a następnie wyodrębni bajty danych w postaci zrzutu hex. Został stworzony do pracy z oprogramowaniem sprzętowym: sprawdzania pliku .hex od dostawcy przed jego flashowaniem, sprawdzania kompilacji pod kątem uszkodzonego rekordu po złym połączeniu lub odczytywania nieprzetworzonych bajtów bez otwierania edytora hex.

Każda linia jest analizowana jako jeden rekord: liczba bajtów, 16-bitowy adres, typ rekordu (dane, koniec pliku lub jeden z rekordów segmentu/liniowego i początek), bajty danych i suma kontrolna. Rekord jest ważny, jeśli jego liczba bajtów odpowiada obecnym danym, jego typ rekordu ma odpowiednią długość dla swojego rodzaju, a suma każdego bajtu w rekordzie wynosi zero modulo 256 — standardowa reguła Intel HEX. Bajty danych z każdego prawidłowego rekordu danych są łączone w kolejności pliku i renderowane jako klasyczny zrzut hex: kolumna przesunięta, szesnaście bajtów w wierszu i odstęp do druku w formacie ASCII po prawej stronie.

Poniżej zrzutu znajduje się raport z walidacji, zawierający listę wszystkich rekordów, które zakończyły się niepowodzeniem, według numeru wiersza, oznaczony jako zniekształcona struktura (wiersz, który jest źle sformułowany hex, ma liczbę bajtów niezgodną z długością lub nierozpoznany typ rekordu) lub złą sumę kontrolną. Jedna przerywana linia nie zatrzymuje reszty pliku: każdy inny rekord jest nadal sprawdzany i, jeśli jest ważny, nadal wnosi swoje bajty. Włącz opcję „Uppercase hex”, aby wyrenderować zrzut za pomocą A–F zamiast a–f, zgodnie z oczekiwaniami programisty lub dezasemblera.

Wszystko działa w Twojej przeglądarce. Obrazy oprogramowania sprzętowego i zawartość pamięci EEPROM są często zastrzeżone, dlatego nic wklejonego tutaj nie jest przesyłane — plik nigdy nie opuszcza urządzenia.

Częste pytania

Co liczy się jako zła suma kontrolna w porównaniu ze zniekształconym rekordem?
Zniekształcony rekord to taki, którego struktura jest uszkodzona: nie zaczyna się od „:”, jest niepoprawny hex, jego liczba bajtów nie odpowiada rzeczywistej długości lub typ rekordu nie jest rozpoznawany. Rekord o prawidłowej strukturze, ale suma kontrolna, która nie sumuje się do zera, mod 256, jest zgłaszany osobno jako zła suma kontrolna — jego dane są nadal wyodrębniane, ponieważ same bajty są poprawnie sformułowane.
Jakie typy rekordów rozpoznaje?
Dane (00) i koniec pliku (01) plus rozszerzony adres segmentu, początkowy adres segmentu, rozszerzony adres liniowy i początkowe rekordy adresu liniowego (02–05). Tylko rekordy danych dostarczają bajty do danych wyjściowych; pozostałe są sprawdzane pod kątem struktury, ale nie zawierają danych wyjściowych.
Jak bajty danych są ułożone na wyjściu?
Są one łączone w kolejności, w jakiej ich rekordy pojawiają się w pliku, a nie umieszczane pod adresami rekordów — wynikiem jest surowy strumień danych, a nie obraz pamięci.
Czy jedna linia przerywana uniemożliwia analizę całego pliku?
Nie. Każdy rekord jest sprawdzany niezależnie, zatem w raporcie sprawdzającym pojawia się pojedyncza linia zniekształcona lub zawierająca błędną sumę kontrolną, podczas gdy każdy inny prawidłowy rekord nadal analizuje i udostępnia swoje bajty.
Czy mój plik HEX jest gdzieś przesłany?
Nie. Analizowanie odbywa się całkowicie w przeglądarce — wklejona tutaj zawartość oprogramowania sprzętowego i pamięci EEPROM nigdy nie jest wysyłana na serwer.