Конвертирование прошивок

  • Автор темы Jovani
J

Jovani

Команда форума
  • 16 Сен 2005
Конвертирование прошивок
  • - Мой программатор понимает только BIN и HEX , а я скачал прошивку, а она в каком-то формате E2P. Как сделать эту прошивку в HEX или BIN ?
Так, как меня задолбали подобными вопросами по E-mail, обьясняю тут основы, что-бы было куда ткнуть носом. Сперва вкратце, потом, буду дополнять, если будет необходимость.

Не буду вдаваться в подробности, почему родилось много различных форматов для хранения дампов памяти (прошивок), скажу только, что все файлы прошивок, изначально, делятся на текстовые и бинарные.
Текстовые - файл содержит только печатные символы ASCII (коды от 32h до FFh)
Бинарные - файл содержит все символы ASCII, включая непечатные (коды от 00h до FFh)

Скажу сразу - не надейтесь на расширение файла.
По причине незнания, могут присвоить любое - EEP, DAT, MEM, NVM, HEX, и тд.

Сперва, определитесь, в каком реально, формате, ваш файл. Для наглядности, будем открывать файл в блокноте, не надеясь на то, что файлу присвоено правильное расширение. Совет - всегда проверяйте размер файла и обзаведитесь нормальным HEX-редактором и используйте его. Простейший редактор я приатачил.

Для примера, один и тот-же файл прошивки, я переконвертировал в четыре различных формата: HEX, BIN, E2P, TXT.
Далее, кратко рассмотрим основные отличия этих форматов.

Краткое описание форматов

Текстовые:

HEX (шестнадцатеричный)
Универсальный формат, понимает большинство программаторов.
Новая строка начинается с двоеточия, далее адрес, ....
eeprom1.png
  • [*: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, но без указания адресов.
То есть, просто, шестнадцатеричное представление данных в текстовом виде. Без всяких контрольных сумм, адресов, и тд.
eeprom2.png


Бинарные:

BIN (бинарный)
Универсальный формат, понимается фактически всеми программаторами.
На мой взгляд, наиболее оптимален для хранения дампов.
Cобственно содержит те-же коды, что и в памяти. Соответственно, размер файла, равен размеру памяти.
eeprom3.png


E2P (бинарный)
Изобретение от Pony, тот-же BIN, но в начало файла, добавлена "шапка" 152 байта.
Всегда есть сигнатура - E2P!Lanc
eeprom4.png


Теперь по конвертированию:

BIN <-> HEX
Програмки прилагаются. Для конвертирования удобно накидывать файл, мышкой, на программу.

TXT <-> BIN
Оригинальная програмка прилагается. В свое время, долго искал подобную.

E2P -> BIN
В любом шестнадцатеричном редакторе, удаляете первые 152 байта.

Это основные форматы, и для большинства Мастеров, все это известно.
Об "эксклюзивных", и некоторых тонкостях, разьясню позже (если будет время).
Ну, а кому не лень, и есть желание, может продолжить тему ...

HEDIT.rar
BIN2TXT.rar
BIN2HEX.rar
 
  • Like
Реакции: LEON_D и 1андрей11
J

Jovani

Команда форума
  • 16 Сен 2005
Не знаю, насколько продолжение темы актуально, ведь многие, не утруждают себя, и просто ограничиваются элементарным скачиванием прошивки с сайта или запросом ее в форуме. Но, пока есть время, продолжаю ...

Далее к теме, наглядный пример, как из "нестандартного" дампа прошивки, создать стандартный файл.
Возьмем, к примеру VESTEL на базе которого производится множество стандартных шасси, и на сайте поддержки которого, находится огромное количество прошивок под всевозможные модели и их модификации.

Как зайти к ним на сайт без доступа, я описывать не буду, это другая тема. Поговорим о дампе.
Скачиваем файл, например для TV RTV 3716 TXT(AK36) и описание к нему.
Открываем в текстовом редакторе, и видим картину:
36_X074_GD_PHL.DAT.png



Из информации в предыдущем сообщении, делаем выводы:
- файл текстовый
- нестандартный формат
- почти TXT, только добавлена шапка, типа заголовка и строка начинается с адреса

Задача: вырезать необходимый нам текстовый блок и затем, переконвертировать его в BIN.
Реализуется: программой UltraEdit-32.

Эта программа, позволяет работать в "Column Mode", то есть выделять, копировать и вставлять блоки в колонках. UltraEdit установлен у меня стандартным редактором текста. Кстати, он может работать и в режиме "HEX Mode".
Итак, выделям и копируем блок нужного текста:
36_X074_GD_PHL.DAT2.png


Вставляем скопированный блок в новый созданный файл:
36_X074_GD_PHL.DAT3.png


Сохраняем полученный текстовый файл, который далее, мы можем сконвертировать например в BIN, программой BIN2TXT.
Конвертируем, и результат в виде BIN-файла, готов.
Затраты времени - 2 минуты.
 
  • Like
Реакции: LEON_D и 1андрей11

Информация Неисправность Прошивки Схемы Справочники Маркировка Корпуса Сокращения и аббревиатуры Частые вопросы Полезные ссылки

  • Справочная информация

    Этот блок для тех, кто впервые попал на страницы нашего сайта. В форуме рассмотрены различные вопросы возникающие при ремонте бытовой и промышленной аппаратуры. Всю предоставленную информацию можно разбить на несколько пунктов:

    • Диагностика
    • Определение неисправности
    • Выбор метода ремонта
    • Поиск запчастей
    • Устранение дефекта
    • Настройка

    Учитывайте, что некоторые неисправности являются не причиной, а следствием другой неисправности, либо не правильной настройки. Подробную информацию Вы найдете в соответствующих разделах.

  • Неисправности

    Все неисправности по их проявлению можно разделить на два вида - стабильные и периодические. Наиболее часто рассматриваются следующие:

    • не включается
    • не корректно работает какой-то узел (блок)
    • периодически (иногда) что-то происходит

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

    Большинство современной аппаратуры представляет из себя подобие программно-аппаратного комплекса. То есть, основной процессор управляет другими устройствами по программе, которая может находиться как в самом чипе процессора, так и в отдельных микросхемах памяти.

    На сайте существуют разделы с прошивками (дампами памяти) для микросхем, либо для обновления ПО через интерфейсы типа USB.


    По вопросам прошивки Вы должны выбрать раздел для вашего типа аппарата, иначе ответ и сам файл Вы не получите, а тема будет удалена.
  • Схемы аппаратуры

    Начинающие ремонтники часто ищут принципиальные схемы, схемы соединений, пользовательские и сервисные инструкции. Это могут быть как отдельные платы (блоки питания, основные платы, панели), так и полные Service Manual-ы. На сайте они размещены в специально отведенных разделах и доступны к скачиванию гостям, либо после создания аккаунта:


    Внимательно читайте описание. Перед запросом схемы или прошивки произведите поиск по форуму, возможно она уже есть в архивах. Поиск доступен после создания аккаунта.
  • Справочники

    На сайте Вы можете скачать справочную литературу по электронным компонентам (справочники, таблицу аналогов, SMD-кодировку элементов, и тд.).


    Информация размещена в каталогах, файловых архивах, и отдельных темах, в зависимости от типов элементов.

  • Marking (маркировка) - обозначение на электронных компонентах

    Современная элементная база стремится к миниатюрным размерам. Места на корпусе для нанесения маркировки не хватает. Поэтому, производители их маркируют СМД-кодами.


  • Package (корпус) - вид корпуса электронного компонента

    При создании запросов в определении точного названия (партномера) компонента, необходимо указывать не только его маркировку, но и тип корпуса. Наиболее распостранены:

    • DIP (Dual In Package) – корпус с двухрядным расположением контактов для монтажа в отверстия
    • SOT-89 - пластковый корпус для поверхностного монтажа
    • SOT-23 - миниатюрный пластиковый корпус для поверхностного монтажа
    • TO-220 - тип корпуса для монтажа (пайки) в отверстия
    • SOP (SOIC, SO) - миниатюрные корпуса для поверхностного монтажа (SMD)
    • TSOP (Thin Small Outline Package) – тонкий корпус с уменьшенным расстоянием между выводами
    • BGA (Ball Grid Array) - корпус для монтажа выводов на шарики из припоя

  • Краткие сокращения

    При подаче информации, на форуме принято использование сокращений и аббревиатур, например:

      Сокращение   Краткое описание
    LEDLight Emitting Diode - Светодиод (Светоизлучающий диод)
    MOSFETMetal Oxide Semiconductor Field Effect Transistor - Полевой транзистор с МОП структурой затвора
    EEPROMElectrically Erasable Programmable Read-Only Memory - Электрически стираемая память
    eMMCembedded Multimedia Memory Card - Встроенная мультимедийная карта памяти
    LCDLiquid Crystal Display - Жидкокристаллический дисплей (экран)
    SCLSerial Clock - Шина интерфейса I2C для передачи тактового сигнала
    SDASerial Data - Шина интерфейса I2C для обмена данными
    ICSPIn-Circuit Serial Programming – Протокол для внутрисхемного последовательного программирования
    IIC, I2CInter-Integrated Circuit - Двухпроводный интерфейс обмена данными между микросхемами
    PCBPrinted Circuit Board - Печатная плата
    PWMPulse Width Modulation - Широтно-импульсная модуляция
    SPISerial Peripheral Interface Protocol - Протокол последовательного периферийного интерфейса
    USBUniversal Serial Bus - Универсальная последовательная шина
    DMADirect Memory Access - Модуль для считывания и записи RAM без задействования процессора
    ACAlternating Current - Переменный ток
    DCDirect Current - Постоянный ток
    FMFrequency Modulation - Частотная модуляция (ЧМ)
    AFCAutomatic Frequency Control - Автоматическое управление частотой

  • Частые вопросы

    Как мне дополнить свой вопрос по теме Конвертирование прошивок?

    После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.

    Кто отвечает в форуме на вопросы ?

    Ответ в тему Конвертирование прошивок как и все другие советы публикуются всем сообществом. Большинство участников это профессиональные мастера по ремонту и специалисты в области электроники.

    Как найти нужную информацию по форуму ?

    Возможность поиска по всему сайту и файловому архиву появится после регистрации. В верхнем правом углу будет отображаться форма поиска по сайту.

    По каким еще маркам можно спросить ?

    По любым. Наиболее частые ответы по популярным брэндам - LG, Samsung, Philips, Toshiba, Sony, Panasonic, Xiaomi, Sharp, JVC, DEXP, TCL, Hisense, и многие другие в том числе китайские модели.

    Какие еще файлы я смогу здесь скачать ?

    При активном участии в форуме Вам будут доступны дополнительные файлы и разделы, которые не отображаются гостям - схемы, прошивки, справочники, методы и секреты ремонта, типовые неисправности, сервисная информация.


  • Здесь просто полезные ссылки для мастеров. Ссылки периодически обновляемые, в зависимости от востребованности тем.



S

SMV

  • 17 Сен 2005
Не проше ли пользоваться одной программой WinHEX и редактор и конвертор
 
J

Jovani

Команда форума
  • 17 Сен 2005
SMV, К сожалению, универсальной программы нет.
WinHex хороший редактор, но заточен под бинарные файлы.
Попробуй-ка в WinHex-е вырезать колонку из текстового файла ...

Как уже сообщал, в этом плане, мне нравится UltraEdit, который может работать как в текстовом режиме, так и в hex, кроме того, возможность использования в нем регулярных выражений(программеры знают что это), делает его мощнейшим инструментом в умелых руках.
 
  • Like
Реакции: LEON_D
M

marktk

  • 21 Янв 2006
Самое простое это использовать тот же ПОНИ программатор.
Загрузить в него можно в любом из следующих форматов. .e2p,hex,bin,csm,rom,eep !
а преобразовать в любой из этих же посредтством SAVE AS:
 
J

Jovani

Команда форума
  • 21 Янв 2006
marktk сказал(а):
Самое простое это использовать тот же ПОНИ программатор
ПОНИ ориентируется не на формат, а на расширение файла.
Нужно понимать, что расширение файла и формат - это разные вещи !
Тем не менее, способ верный. И в ряде случаев, поможет в конвертировании.
 
  • Like
Реакции: LEON_D
J

Jovani

Команда форума
  • 21 Янв 2006
Формат S19
Хочу обратить внимание на один текстовый формат, который может использоваться в дампах прошивок.
Это, формат S19 от Motorola.

Описывать его здесь, не смысла, в инете найдете все.
Для быстрого определения, скажу только, что все строки начинаются с символа S.
Ковертор прилагаю.

S19 to BIN to S19 convert.rar
 
  • Like
Реакции: LEON_D
J

Jovani

Команда форума
  • 6 Ноя 2006
Некоторые спрашивают:
- как переконвертировать прошивки с расширением PRJ, в что-то более стандартное - HEX или BIN

Наибольшая вероятность, что прошивка с расширением PRJ, от программатора PG4UW, если в файле просматривается сигнатура PG4UW. Ну, а PRJ - сокращенно от Project. Это чисто изобретение и наследство от ELNEC-программатора  ссылка скрыта от гостей 

Сконвертировать можно двумя способами:
1 - Скачать софт от программатора, загрузить него этот несчастный PRJ, после, сохранить в BIN.
2 - С помощью HEX-редактора:
То есть:
- открываем PRJ в HEX-редакторе

- ищем ASCII последовательность: [_END_] Далее идет код перевод строки, возврат каретки, 00h (c начала файла). То есть, последовательность 5B 5F 45 4E 44 5F 5D 0D 0A 00

- ищем ASCII последовательность Author(с конца файла). То есть, последовательность 41 75 74 68 6F 72

Все, что между этим кодом - прошивка в BIN.
Проконтролируйте размер файла!
И еще, не маловажно: PRJ - может содержать только настроечные параметры. То есть, не иметь в себе прошивки.

На рисунке, выделенное синим цветом, и есть прошивка в BIN.

prj_147.png
 
  • Like
Реакции: LEON_D
N

Nighter

  • 27 Ноя 2007
хотелось бы добавить по поводу формата .еер. В этом формате большинство прошивок на стиральные машины и другую бытовую технику. Когда его загружаешь в Ponyprog то в текстовом окошке видно ,что каждые два байта поменяны местами. Чтобы привести в Ponyprog эту прошивку к виду, необходимому для записи, нужно зайти в опцию утилиты,далее
кликнуть byte swap. И еще для работы с разными файлами существует программа Hex Workshop 4.2 :)
Удачных ремонтов!
 
  • Like
Реакции: LEON_D
K

key-s

  • 22 Фев 2008
Перевёл на русский язык программу-редактор HEdit 2.1, что выше выложил Jovani как HEDIT. Полностью русифицирована. Если заметите неточности в переводе - пишите в личку.

HEdit 2.1_ru.rar
 
  • Like
Реакции: LEON_D
K

key-s

  • 21 Мар 2009
Бонусный топик для телемастеров.

Если на вашем компе файлы прошивок: BIN, E2P, HEX не привязаны к какому-либо приложению, например HEX-редактору, и соответственно у них нет своих иконок, а по-дефолту У ВСЕХ стоит стандартный значок Windows "не опознала", то, чтобы быстро, сразу, наглядно, в том числе и в окнах программ и архивов, распозновать файлы прошивок - можно самому задать свои иконки для каждого расширения. Я позволил себе сделать за вас иконки этих трех, самых ходовых для телемастера, файлов прошивок.

Для тех кто слабо представляет как сменить иконки, объясняю на примере ОС Windows XP:

-Скачиваете прицепленный файл и разархивируете его в папку "dump icons".
-Открываете: "Мой компьютер" > Локальный диск C:\
-Копируете все файлы иконок из папки "dump icons" на диск "C:\".
-Вверху окна проводника диска "C:\" нажимаете: "Сервис" > "Свойства папки..." > "Типы файлов". После недолгого анализа винда выдаст все типы зарегиных на вашем компе файлов.
-Нажимаете: "Создать" и в появившемся поле, верхним регистром, т.е. крупными буквами, пишете нужное расширение. Например: BIN
-Нажимаете OK. Теперь в списке будет "Файл BIN". Выбираете его в списке одним кликом, нажимаете: "Дополнительно" > "Сменить значок..." > "Обзор...". Находите на диске "C:\" наши значки и, конкретно для файлов "BIN", выбираете нужный. На нашем примере это icon_BIN. Подтвеждаете всё кнопками "OK".
-Повторяете процедуру для двух остальных расширений E2P и HEX, с выбором соответствующих иконок... Перезагружать комп не требуется, всё должно привязаться сразу...

По идее, всё закончено. Но в заключении, нужно спрятать исходники иконок на диске "C:\". Это делается просто.
-Выделяете все наши иконки и (или на каждой иконку в отдельности) правой мышкой выбираете "Свойства". Ставите галочку в поле "Скрытый", жмете "Применить" > "OK". Теперь иконки не будут мазолить глаза на диске и вы не удалите их случайно или по неосторожности.

dumps_167.gif


dump icons.rar
 
  • Like
Реакции: LEON_D
Ю

Юрий М

  • 16 Мар 2011
- Мой программатор понимает только BIN и HEX , а я скачал прошивку, а она в каком-то формате E2P. Как сделать эту прошивку в HEX или BIN ?
я беру к примеру PonyProg устанавливаю программу, открываю файл и тутже сохраняю с нужным мне расширением
 
  • Like
Реакции: LEON_D
V

VernerFonBraun

  • 4 Ноя 2011
Хочу представить утилиту Elinv Firmware Patcher, версия 0.5 Beta. Версия, хоть экспериментальная, но вполне рабочая, с ее помощью можно патчить небольшие прошивки, в основном она предназначенные для работы с прошивками под память 24xx, 93xx. Утилита особенно полезна для принтеров, стиральных машин АТЛАНТ, мониторов (для DDC), т.к. для этих устройств не требуется менять все данные в памяти.

Программа загружает прошивки форматов:
  • Binary (*.bin),
    Intel Hex Standart (*.hex),
    АТЛАНТ/VESTEL (*.i2c).
Экспортирует в форматы:
  • Intel Hex Standart (*.hex),
    Motorola S19 (*.mot).
image_4eb44359bf71a.jpg


Внешний вид интерфейса программы Elinv Firmware Patcher.

Утилита написана на Java и работает на любой ОС. Для этого вам понадобится установить JRE 1.5 или свежее. Пакет джавы бесплатный, легко ставится, можете скачать от производителя  ссылка скрыта от гостей .

Утилита работает с редким форматом прошивок *.i2c, который может быть неполным (как в заводстких прошивках АТЛАНТ). Проблема в том, что в сервисе попадаются редкие случаи сбоя прошивок, когда нельзя достать новую прошивку или она неполная или вам просто надо перепрограммировать только поврежденные байты. Оказалось, что это сделать невозможно, т.к. софт от большинства популярных программаторов начинает записывать память с нулевого адреса и до конца, также по этому случаю нет ни одного “смесителя” прошивок. Примером могут служить заводские прошивки для АТЛАНТ, которые имеют ненулевой начальный адрес. Такая же ситуация с прошивками картриджей принтеров, часть данных которых, должны оставаться нетронутыми или даже с DDC-данными мониторов. Если вам не нужно изменять все данные памяти, то пожалуй, эта утилита вам пригодится.

Программа загружает прошивку в память (базовую, которая считана из памяти - дамп), затем эту прошивку можно пропатчить (обновить) другой прошивкой (прошивка-заплатка). Заплатка накладывается поверх базовой байт в байт, заменяя их с учетом адресов и смещений, не трогая остальные байты. Затем обновленную прошивку можно снова заливать любым программаторным софтом.

Программа совершенно бесплатна (Freeware). В ОС Windows для запуска программы достаточно дважды щелкнуть по файлу ElinvPatcher.jar как обычный EXE-файл.

Программа Elinv Firmware Patcher 0.5b в архиве.
 
  • Like
Реакции: LEON_D
G

Guk

  • 9 Окт 2013
Попробовал выложенный выше конвертор:
S19 to BIN to S19 convert.rar 97,07 КБ Скачано: 2734 раз(а)

Взял дамп bin(2кВ)>переконвертировал этой прогой в S19>этот S19 переконвертировал обратно в bin>исходный дамп bin сравнил c получившимся bin>дампы практически не совпали...Пробовал на Windows XP.На файле проги конвертора написано"MFC Application".Объясните, в чем фишка данной проги или она не под Windows XP?
 
X

xtrigger

  • 5 Янв 2015
Jovani сказал(а):
E2P -> BIN
В любом шестнадцатеричном редакторе, удаляете первые 152 байта.
Не знаю в чем прикол, пришлось мне столкнуться с прошивкой картриджа в e2p.
Отрезал 152 не работает.
Сравнил с бекапом, понял что надо отрезать 151 байт, отрезал, заработало.
Препарировал прошивку в WinHex.
 
V

Varnava

  • 16 Мар 2017
xtrigger сказал(а):
понял что надо отрезать 151 байт
Уверен? При счете с 0 было отрезано 152 байта.
 

Верх Низ