J
Jovani
R. I. P.
- 16 Сен 2005
Конвертирование прошивок
Не буду вдаваться в подробности, почему родилось много различных форматов для хранения дампов памяти (прошивок), скажу только, что все файлы прошивок, изначально, делятся на текстовые и бинарные.
Текстовые - файл содержит только печатные символы ASCII (коды от 32h до FFh)
Бинарные - файл содержит все символы ASCII, включая непечатные (коды от 00h до FFh)
Скажу сразу - не надейтесь на расширение файла.
По причине незнания, могут присвоить любое - EEP, DAT, MEM, NVM, HEX, и тд.
Сперва, определитесь, в каком реально, формате, ваш файл. Для наглядности, будем открывать файл в блокноте, не надеясь на то, что файлу присвоено правильное расширение. Совет - всегда проверяйте размер файла и обзаведитесь нормальным HEX-редактором и используйте его. Простейший редактор я приатачил.
Для примера, один и тот-же файл прошивки, я переконвертировал в четыре различных формата: HEX, BIN, E2P, TXT.
Далее, кратко рассмотрим основные отличия этих форматов.
Краткое описание форматов
Текстовые:
HEX (шестнадцатеричный)
Универсальный формат, понимает большинство программаторов.
Новая строка начинается с двоеточия, далее адрес, ....
TXT (текстовый)
Излюбленный формат корейцев для хранения дампа.
Почти что HEX, но без указания адресов.
То есть, просто, шестнадцатеричное представление данных в текстовом виде. Без всяких контрольных сумм, адресов, и тд.
Бинарные:
BIN (бинарный)
Универсальный формат, понимается фактически всеми программаторами.
На мой взгляд, наиболее оптимален для хранения дампов.
Cобственно содержит те-же коды, что и в памяти. Соответственно, размер файла, равен размеру памяти.
E2P (бинарный)
Изобретение от Pony, тот-же BIN, но в начало файла, добавлена "шапка" 152 байта.
Всегда есть сигнатура - E2P!Lanc
Теперь по конвертированию:
BIN <-> HEX
Програмки прилагаются. Для конвертирования удобно накидывать файл, мышкой, на программу.
TXT <-> BIN
Оригинальная програмка прилагается. В свое время, долго искал подобную.
E2P -> BIN
В любом шестнадцатеричном редакторе, удаляете первые 152 байта.
Это основные форматы, и для большинства Мастеров, все это известно.
Об "эксклюзивных", и некоторых тонкостях, разьясню позже (если будет время).
Ну, а кому не лень, и есть желание, может продолжить тему ...
► HEDIT.rar
► BIN2TXT.rar
► BIN2HEX.rar
- - Мой программатор понимает только BIN и HEX , а я скачал прошивку, а она в каком-то формате E2P. Как сделать эту прошивку в HEX или BIN ?
Не буду вдаваться в подробности, почему родилось много различных форматов для хранения дампов памяти (прошивок), скажу только, что все файлы прошивок, изначально, делятся на текстовые и бинарные.
Текстовые - файл содержит только печатные символы ASCII (коды от 32h до FFh)
Бинарные - файл содержит все символы ASCII, включая непечатные (коды от 00h до FFh)
Скажу сразу - не надейтесь на расширение файла.
По причине незнания, могут присвоить любое - EEP, DAT, MEM, NVM, HEX, и тд.
Сперва, определитесь, в каком реально, формате, ваш файл. Для наглядности, будем открывать файл в блокноте, не надеясь на то, что файлу присвоено правильное расширение. Совет - всегда проверяйте размер файла и обзаведитесь нормальным HEX-редактором и используйте его. Простейший редактор я приатачил.
Для примера, один и тот-же файл прошивки, я переконвертировал в четыре различных формата: HEX, BIN, E2P, TXT.
Далее, кратко рассмотрим основные отличия этих форматов.
Краткое описание форматов
Текстовые:
HEX (шестнадцатеричный)
Универсальный формат, понимает большинство программаторов.
Новая строка начинается с двоеточия, далее адрес, ....
- [*:295134b91a]Описание форматов HEX-файлов
HEX Файл - текстовый файл определённой структуры
Файл состоит из текстовых строк следущеюго формата. Все числа в HEX
Hачинается с ':'. Далее 2 символа - число байт данных.
4 символа - начальный адрес данных( адрес первого байта строки ).
2 символа - если последняя строка здесь '01' иначе '00'
Далее байты данных по 2 символа на байт. В конце 2 символа - контрольная сумма - дополнение до 2 суммы байтов данных
Вот пример данных в hex-формате:
:100AF00022AB12E1C9F5D56FE60F677DE6F01F1F47
А вот разбивка по полям:
:LLOOOOSSD0D1D2D3D4D5D6D7D8D9DaDbDcDdDeDfCS
Здесь (все числа - шестнадцатеричные):
LL - число байт, упакованных в данной строке
OOOO - смещение байта D0 в двоичном образе
SS - тип записи (00 - данные, 01 - конец файла)
D0-Df - шестнадцатеричное представление очередных LL байт данных.
СS - контрольная сумма - сумма всех байт в строке должна быть равна 0.
Так отмечается конец файла:
:00000001FF
Интересно, что этим кодом можно передавать двоичные данные даже по телеграфу.
В HEX-файлах для PIC-ов данные распределены следующим образом:
0000h - 3FFFh: Program memory - память програм
4000h - 400Fh: Config memory - область памяти в которой содержится
4000h - 400Dh: идентификатор пользователя (любая информация)
400Eh: идентификатор производителя (для каждого чипа свой) - поле "ID"
4000F: конфигурационное слово (тип генератора, защита от записи и др.) - поле "Config"
4200h - 43FFh: Data memory - память данных
TXT (текстовый)
Излюбленный формат корейцев для хранения дампа.
Почти что HEX, но без указания адресов.
То есть, просто, шестнадцатеричное представление данных в текстовом виде. Без всяких контрольных сумм, адресов, и тд.
Бинарные:
BIN (бинарный)
Универсальный формат, понимается фактически всеми программаторами.
На мой взгляд, наиболее оптимален для хранения дампов.
Cобственно содержит те-же коды, что и в памяти. Соответственно, размер файла, равен размеру памяти.
E2P (бинарный)
Изобретение от Pony, тот-же BIN, но в начало файла, добавлена "шапка" 152 байта.
Всегда есть сигнатура - E2P!Lanc
Теперь по конвертированию:
BIN <-> HEX
Програмки прилагаются. Для конвертирования удобно накидывать файл, мышкой, на программу.
TXT <-> BIN
Оригинальная програмка прилагается. В свое время, долго искал подобную.
E2P -> BIN
В любом шестнадцатеричном редакторе, удаляете первые 152 байта.
Это основные форматы, и для большинства Мастеров, все это известно.
Об "эксклюзивных", и некоторых тонкостях, разьясню позже (если будет время).
Ну, а кому не лень, и есть желание, может продолжить тему ...
► HEDIT.rar
► BIN2TXT.rar
► BIN2HEX.rar
-
bin2hex_628.rar13,2 КБ · Посмотрено: 54
-
bin2txt_931.rar284,4 КБ · Посмотрено: 27
-
hedit_108.rar154,4 КБ · Посмотрено: 27
