Загрузчик SECU-3 (boot loader)

Обсуждение прошивок SECU-3. Discussion of SECU-3 firmware.

Moderator: STC

User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Загрузчик SECU-3 (boot loader)

Post by STC »

Обсуждение загрузчика SECU-3.
https://github.com/ashabelnikov/secu3bld

Как вы смотрите на добавление в заргузчик проверки контрольной суммы прошивки? Если контрольная сумма не совпадает, то загрузчик не запускает прошивку (во избежание некорректной работы). С одной стороны это хорошо, но с другой - плохо, так как на подпорченой но еще рабочей прошивке машина не поедет.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Serj_K
LQFP144 - On Top Of The Game
Posts: 330
Joined: Thu Dec 09, 2010 12:55 pm
Location: Kyiv, Ukraine

Re: Загрузчик SECU-3 (boot loader)

Post by Serj_K »

Проверка контрольной суммы прошивки проводится в самом начале запуска прошивки. Дальше можно просто заблокировать работу. Но запорченными могут быть разные фрагменты прошивки, например неиспользуемая таблица. В таком случае лишаемся работы блока, хотя могли бы спокойно работать.
Arseniy
LQFP112 - Up with the play
Posts: 154
Joined: Wed Dec 08, 2010 2:21 am
Location: Minsk Belarus
Contact:

Re: Загрузчик SECU-3 (boot loader)

Post by Arseniy »

А что, часто прошивка записывается с ошибкой или слетает? Думаю при записи КС должен проверять программатор или менеджер. В процессе работы это очень редкий случай можно просто сигнализировать CE при включении.
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Загрузчик SECU-3 (boot loader)

Post by STC »

Как повысить скорость загрузки прошивки?
В параметрах SECU-3 можно менять только скорость обмена данными с прошивкой. Чтобы повысить скорость загрузки прошивки (скорость работы с загрузчиком):
1. Нужно пересобрать загрузчик (в коде загрузчика указывается скорость);
2. В настройках менеджера для загрузчика указать нужную скорость;
3. Перепрошить загрузчик программатором;
4. Поставить в менеджере галочку "бутлоадер запущен аварийно" и залить прошивку.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Загрузчик SECU-3 (boot loader)

Post by Stranger21 »

ах , вот оно что.
тоесть меняя скорость работы в менеджере , это будет меняться только онлайн режим работы , скорость которого на 9600 , стабильна , и не вызывает нареканий. ее вполне хватает для отображения данных . во всех диагностических системах авто , к слову сказать , скорости примерно такиеже

а вот то что меня раздражает ждать загрузку прошивки , то нужно всего навсего перешить загрузчик .... понятно ... попробуем!!!!! уш очень долго шьеться она на 9600 , 57к наврятли потянет но хоть чуть чуть поднять будет уже хорошо .

спасибо
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Загрузчик SECU-3 (boot loader)

Post by Stranger21 »

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

думаю что я прав
а если я прав , то в теле загрузчика , можно найти байты отвечающие за скорость , и меняя их в каждой новой прошивке , будет получаться нужная скорость ?
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Загрузчик SECU-3 (boot loader)

Post by STC »

вопрос!!!!!! , загрузчик , же содержиться в прошивке!!! ввиде просто его тела , тоесть мы еготоже перешиваем веть каждый раз когда заливаем прошивку? правильно?
Загрузчик содержится в прошивке, но при перепрошивке через менеджер он не перепрошивается (он не может прошить сам себя...).
значит , если я пересоберу загрузчик , вставлю его тело в прошивку и залью - этого веть будет достаточно?
или если я залью загрузчик програматором , но потом буду заливать новую прошивку и она его затрет!!!!
Да. Загрузчик можно пересобрать, прогнать через спец. утилиту делающую массив на языке С и вставить в прямо исходники прошивки.
Еще раз. Заливка прошивки через менеджер не может затереть загрузчик. Загрузчик можно затереть либо программатором, либо выполнением кода (аналогичного загрузчику) находящегося в так называемой секции Application (см. даташит на AVR). В секции Application лежит прошивка.

Вот эта строчка в seculdr.asm устанавливает скорость:
ldi R24,UBR ; set Baud rate
В принципе. Загрузчик даже пересобирать не нужно. Нужно просто поменять 2 байтa в массиве на другие значения:
PGM_FIXED_ADDR_OBJ(uint8_t boot_loader[BOOT_LOADER_SIZE], ".boot_loader") =
{
#ifdef _PLATFORM_M16_
0xF8,0x94,0x00,0x24,0x04,0xBA,0x9B,0x99,0xFB,0xC0,0xF8,0x94,0x8F,0xE5,0x94,0xE0,
0x8D,0xBF,0x9E,0xBF,0x87,0xE6,0x89,0xB9,0x88,0xE1,0x8A,0xB9,0x73,0xD0,0x01,0x32,
0xE9,0xF7,0x70,0xD0,0x00,0x35,0xD9,0xF4,0xA0,0xD0,0xAF,0xD0,0x13,0xE0,0xB3,0xD0,
0x11,0xE1,0xB1,0xD0,0x44,0x27,0x80,0xE8,0x98,0xD0,0x00,0x2E,0x40,0x27,0x95,0xD0,
Жирным выделены байты инструкции ldi R24, 0x67
Привожу значения:
14400: 0x84, 0xE4
19200: 0x83, 0xE3
28800: 0x82, 0xE2
38400: 0x89, 0xE1
57600: 0x80, 0xE1
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Загрузчик SECU-3 (boot loader)

Post by Stranger21 »

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

просто я подумал , раз загрузчик лежит в прошивке , то возможно при перепрошивке , загрузчик помешаеться в память , не флеш а как бы ОЗУ , и уже шьеться весь флеш вместе с загрузчиком .

ну раз так , и прошивка не может затереть загрузчик , то прешью программатором . достаточно исправить в массиве два числа , собрать как обычно прошивку , и залить через программатор ее
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Загрузчик SECU-3 (boot loader)

Post by STC »

Проверь значения, которые я привел. Возможно что в будущем добавлю их в исходный код прошивки.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Загрузчик SECU-3 (boot loader)

Post by Stranger21 »

Да числа верные
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Post Reply