| Чем патчить прошивки? Обзор утилиты Elinv Firmware PatcherПродолжая тему I2C-программатора (см. [1]), автор столкнулся с новым форматом файлов прошивок *.i2c, который не распознается распространенным программным обеспечением (ПО) и начальный адрес которых больше нуля. Возникают случаи, когда нет возможности получить новую прошивку взамен поврежденной для конкретного устройства, а в поврежденной прошивке нужно только перепрограммировать некоторые байты или восстановить неполный файл прошивки. Оказалось, что это сделать невозможно, так как ПО большинства популярных программаторов начинает записывать память с нулевого адреса и до конца, также по этому случаю нет ни одного смесителя» прошивок. Примером подобной ситуации могут служить заводские прошивки для стиральных машин (СМ) АТЛАНТ и VESTEL, которые имеют ненулевой начальный адрес, а заводской программатор пишет данные (так называемые настроечные байты) уже в предварительно записанную память. Такая же ситуация с прошивками картриджей принтеров и ЭСППЗУ мониторов, часть данных которых должна оставаться нетронутой (DDC-данные мониторов). Если нет необходимости изменять все данные памяти, автор этой статьи предлагает утилиту для быстрого автоматического патча (смешивания») прошивок.
При работе с прошивками, имеющими начальный адрес, отличный от нулевого (заводские прошивки) часто возникают затруднения, в частности, при тонкой» настройке этих файлов. Для этих целей нужны специальные программные средства (патчи и др). Например, заводские прошивки стиральных машин АТЛАНТ имеют формат I2C (*.i2c), предназначенный для работы с оригинальным программатором от производителя. Подобные прошивки не содержат в себе полного дампа (копии) всей памяти в электронном модуле (ЭМ) конкретного устройства, а лишь некоторые основные данные. Если бы даже эти прошивки были в формате *.hex, который также может начинаться с ненулевого адреса, невозможно правильно перепрошить память. Проблема состоит в том, что популярные программные пакеты всегда записывают прошивку в память с нулевого адреса, если же прошивка начинается с ненулевого адреса или имеет пропуски, эти области памяти заполняются единицами (FFh), тем самым будут стерты важные данные, и конечное устройство с подобной модифицированной прошивкой работать не будет. В подобных случаях рекомендуется просто считанную старую прошивку пропатчить обновленной прошивкой и затем записать обратно стандартным ПО для программаторов. Для решения подобной проблемы автором была создана небольшая утилита Elinv Firmware Patcher. Эта программа предназначена для смешивания (патча) настроечных прошивок небольшого размера (для микросхем ЭСППЗУ серий 24Cxx, 93Cxx). Помимо своей основной функции программа позволяет работать с редким форматом файлов (*.i2c). Эта утилита облегчает ручное копирование данных, избавляя от работы по подсчету смещений и экономя время. Для сервисных центров эта функция может быть полезна при прошивке ИМС памяти принтерных картриджей, настройке DDC-данных мониторов и телевизоров.
Полностью статю можно прочитать в бумажной версии журнала | |