LINUX.ORG.RU

Посчитать контрольную сумму прошивки


0

0

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

P.S. Это прошивка для ЭБУ автомобильного двигателя, при инициализации контроллер загружает прошивку из EEPROM и сверяет расчитанную КС с записанной, если они не совпадают, то загорается лампочка «Check Engine» двигатель не заводится.


в прошивке в 4-х последних байтах должна быть записана контрольная сумма этой прошивки

Это точная информация? Откуда она?

Deleted
()

Смотря, какой алгоритм КС. Блочный или побитовый? Просто вычисляет чётность или что-то посложнее?

markevichus ★★★
()
Ответ на: комментарий от Deleted

Должна быть точной, в описании к файлу прошивки было написано: «контрольная сумма 0048»

o2inhal
() автор топика
Ответ на: комментарий от o2inhal

> Как раз прошу совет как вычислить алгоритм по готовому примеру.

Лучше ищи распространенные алгоритмы, и применяй по одному. Еще можно посмотреть документацию по инструментальной среде, в которой прошивка сгененрирована - какой алгоритм там используется.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Все, нашел алгоритм, он не сложный. Вот выдежка с одного форума: «Программа в ЭБУ работает так. Считается сумма всех байт прошивки с нуля по ffffH по модулю 1000H. (Это означает, что если сумма превышает 1000h, старшие разряды теряются (больше 1000H.)) Затем полученный результат сверяется с числом по адресу fffeH. (Напоминаю, что в файле старший разряд числа находится по адресу ffffH) Если совпадает - считается, что ПЗУ исправна (контрольная сумма верна). Число, находящееся по адресу fffb - так называемое дополнение до 1000H. Оно составляет в сумме с контрольной суммой ffffH. Это число добавлено для того, чтобы записанная в конце файла контрольная сумма не повлияла на общую сумму файла по модулю 1000H.»

Всем спасибо.

o2inhal
() автор топика

а чем это таким занимаетесь? какие сайты подскажете по чтению с разъёма ОДБ, может ещё по каким игрушкам? хотя больше бортовые компьютеры интересуют

gunja
()
Ответ на: комментарий от gunja

Посмотрел ваш профиль, никаких контактов. Дайте свой jid, у меня тоже есть к вам вопрос по поводу ISO 9141-2.

o2inhal
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.