Перейти к содержанию

Синтаксический анализатор Intel HEX

Проверьте записи Intel HEX и извлеките их данные в виде дампа hex.

Входные данные
Выходные данные

Синтаксический анализатор Intel HEX

Вставьте файл Intel HEX — записи в стиле «:10010000214601360121470136007EFE09D2190140», которые компиляторы и программисты создают для микроконтроллеров, EEPROM и других встроенных устройств — и этот инструмент проверяет структуру и контрольную сумму каждой записи, а затем извлекает байты данных в виде дампа hex. Он создан для работы с прошивкой: проверка файла .hex от поставщика перед его прошивкой, проверка сборки на наличие поврежденной записи после неудачного слияния или чтение необработанных байтов без открытия редактора hex.

Каждая строка анализируется как одна запись: количество байтов, 16-битный адрес, тип записи (данные, конец файла или одна из сегментных/линейных адресов и начальных записей), байты данных и контрольная сумма. Запись действительна, когда количество ее байтов соответствует имеющимся данным, ее тип записи распознается с правильной длиной для ее типа, а сумма каждого байта в записи равна нулю по модулю 256 — стандартное правило Intel HEX. Байты данных из каждой допустимой записи данных объединяются в файловом порядке и отображаются как классический дамп hex: столбец смещения, шестнадцать байтов в строке и поле для печати в формате ASCII справа.

Ниже дампа в отчете о проверке перечислены все неудачные записи по номеру строки, помеченные либо как неверная структура (строка, которая имеет неправильный формат hex, имеет количество байтов, не соответствующее ее длине, либо нераспознанный тип записи) или неверную контрольную сумму. Одна пунктирная линия не останавливает остальную часть файла: все остальные записи по-прежнему проверяются и, если они действительны, по-прежнему вносят свои байты. Включите «Прописные буквы hex», чтобы отобразить дамп с использованием A–F вместо a–f, что соответствует ожиданиям вашего программиста или дизассемблера.

Все работает в вашем браузере. Образы прошивки и содержимое EEPROM часто являются собственностью, поэтому ничего из вставленного сюда не загружается — файл никогда не покидает ваше устройство.

FAQ

Что считается плохой контрольной суммой по сравнению с некорректной записью?
Неверно сформированная запись — это запись, структура которой нарушена: она не начинается с «:», недействительна hex, ее количество байтов не соответствует ее фактической длине или ее тип записи не распознается. Запись с допустимой структурой, но контрольная сумма которой не равна нулю по модулю 256, сообщается отдельно как неверная контрольная сумма — ее данные все равно извлекаются, поскольку сами байты имеют правильный формат.
Какие типы записей он понимает?
Данные (00) и конец файла (01), а также адрес расширенного сегмента, адрес начального сегмента, расширенный линейный адрес и записи начального линейного адреса (02–05). Только записи данных вносят байты в выходные данные; остальные проверяются на структуру, но не несут выходных данных.
Как байты данных располагаются на выходе?
Они объединяются в том порядке, в котором их записи появляются в файле, а не размещаются по адресам их записей — выходными данными является поток необработанных данных, а не образ памяти.
Одна ломаная линия останавливает анализ всего файла?
Нет. Каждая запись проверяется независимо, поэтому в отчете о проверке указывается одна строка с неверным форматом или неверной контрольной суммой, в то время как все остальные действительные записи по-прежнему анализируют и вносят свои байты.
Загружен ли где-нибудь мой файл HEX?
Нет. Анализ происходит исключительно в вашем браузере — содержимое прошивки и EEPROM, которое вы вставляете сюда, никогда не отправляется на сервер.