Что есть "прошивка"? Этимология термина в рамках сферы чип-тюнинга.

Вы уже прочитали это адское название статьи? Звучит так, будто намечается лекция по лингвистике. Спешим обрадовать - на лекцию нас не хватит, но поразмышлять о терминологии и связанными с ней неточностями мы вполне готовы. Поэтому написали эту статью, которая гарантированно выделяется на фоне остальных, размещённых у нас на сайте. Этот текст, он из области метафизики чип-тюнинга, если так можно выразиться. И рассчитан, в первую очередь, на специалистов, давно работающих в сфере чип-тюнинга. Предупреждаем, читать нужно очень вдумчиво!

Итак, что есть "прошивка"? Точнее, какой смысл уместно заложить в это определение в рамках сферы чип-тюнинга?

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

Многие думают, что в блоке управления лежит файл. Что они купили прошивку и как файл на флешку его перенесли, записав в автомобиль.

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

Когда мастер считывает то, что мы все привыкли называть "прошивкой", по факту из памяти блока управления считываются данные (обычно только часть с определённого по определённый адрес в рамках адресного пространства процессора). Эти данные попадают в буфер программы-загрузчика (т.е. в оперативную память компьютера, где установлен загрузчик). А уже из буфера, при сохранении, программа-загрузчик формирует файл на компьютере. И этот файл принято называть прошивкой.

Причем разные загрузчики могут по-разному сформировать файл: какой-то вырежет пустые области, а другой забьёт их байтами 0xFF или 0x00. Какой-то загрузчик область виртуального EEPROM определит в её фактическое место, согласно адресному пространству процессора. А другой загрузчик, просто добавит эту область в конец файла. И т.д.

С какой-то точки зрения, более корректно было бы называть прошивку не файлом или прошивкой, а дампом (памяти). Ведь под дампом подразумевая "слепок" памяти в конкретном её состоянии. Т.е. когда мастер считывает прошивку, память находится в конкретном состоянии. Вот только, опять же, далеко не всегда имеется возможность получить полный образ памяти. Особенно если речь идёт про работу через OBD2, а не в инженерном режиме (BSL, BSM, BDM, JTAG и прочие). При чтении данных памяти ЭБУ по OBD2, как правило, считываются только калибровки (иногда вместе с управляющей программой) и крайне редко читается "фулл", включающий в себя бут-сектор, виртуальный EEPROM и т.д. Таким образом, получившийся набор данных уже не является полноценным дампом памяти, если придерживаться точности определений. Быть может "неполный дамп" будет уместным определением?

Более того, допустим мы собираем тюнинг на базе считанного дампа, внося изменения в калибровки. Получившийся модифицированный дамп тем более нельзя назвать полноценной скомпилированной программой (особенно если это не "фуллфлеш"), т.к. в нём не пересчитаны контрольные суммы (КС). На современных системах управления контрольных сумм может быть больше десятка (на каждую область данных) и они могут быть связаны между собой (КС нижестоящей области зависит от вышестоящей). Зачастую, без полного образа памяти ЭБУ ("фуллфлеш") или, непосредственно, без автомобиля, правильно посчитать КС вообще не получится. А ведь помимо этого встречаются ещё различные CVN, RSA и прочие "защиты", которые, аналогично, иногда можно посчитать только на базе "фуллфлеша", либо загрузчиком при записи на автомобиле.

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

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

Даже если осознанно использовать термин "тюнинг-прошивка", то правильно будет понимать это не как готовую скомпилированную микропрограмму ЭБУ, а как образцы изменений. Образцы изменений в ПЗУ ЭБУ.

К слову, даже в пользовательском соглашении на нашем сайте прямо указано, что "...под коммерческой прошивкой для чип-тюнинга мы подразумеваем лишь образцы изменений в ПЗУ ЭБУ."

И такая трактовка, как нам кажется, максимально близко отражает суть того, что мы продаём (и продают остальные калибровщики). Наши прошивки - это не скомпилированные программы, не модифицированные заводские программы. Учитывая всё вышеизложенное, можно выразиться так, что наши тюнинг-прошивки - это образцы изменений. Это наши эмпирические знания того, какие калибровки нужно "трогать", чтобы машина поехала иначе. Это наш опыт того, как добиваться результатов в решении задачи по улучшению ездовых качеств автомобиля (и/или отключению какой-то из систем снижения токсичности).

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

Скачивая нашу тюнинг-прошивку в каталоге мастер получает образцы изменений - небольшой кусочек данных (относительного всех данных ПЗУ ЭБУ) с настройками (калибровками). Теми настройками, закодированными в виде байтов, которые субъективно улучшают ездовые характеристики автомобиля или решают какую-то другую задачу.

Дальнейшая задача мастера - записать этот кусочек (область калибровок) в блок управления. То есть внести в ПЗУ ЭБУ те изменения, которые, мы предлагаем как тюнинг-решение поставленных задач. И мастер уже сам решает как внести эти изменения (от нас только образец). К примеру, можно считать фуллфшел через BSL, затем перенести область калибровок, пересчитать КС и записать также в BSL. А можно просто выполнить запись области калибровок через "розетку" из поданного дампа с автоматическим пересчётом КС загрузчиком при записи.

Подытожим окончательно: Очевидно, что прошивка для чип-тюнинга - это не готовая скомпилированная программа, а образцы изменений, которые могут быть произведены в памяти ЭБУ, для решения конкретной задачи. Непосредственным же внесением этих изменений занимается мастер. Именно мастер решает как записать, что записать и чем записать. Именно мастер следит за целостностью данных ПЗУ ЭБУ, корректностью их структуры, корректностью контрольных сумм ПЗУ ЭБУ при внесении изменений и т.д. Для этого мастер должен обладать соответствующими знаниями и навыками в области программирования микроконтроллеров, а также использовать специализированные программно-аппаратные средства, которые будут удовлетворять поставленным задачам по внесению изменений в данные ПЗУ ЭБУ. Впрочем, при использовании мастером хорошего оборудования (в частности, оригинальных загрузчиков, а не китайских отломов), подавляющая часть вышестоящих вопросов отпадает сама собой.


Вы дочитали до этого момента? Круто! Делаем ставки, что до этого места дочитают лишь избранные. Вероятно, вы один из них, и, вероятно, вы далеко не первый день в чип-тюнинге.

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

Задумайтесь, почему некоторые мастера валят блоки управления? В 99% случаев потому, что откровенно не понимают, что делают. А самое печальное, что и не хотят понимать, думая, что прошивка это просто файл, который нужно просто перенести на флэшку.

Перейти к списку статей
Поделиться

Обсуждение

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