Page 1 of 2

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

Posted: Thu Jun 02, 2011 9:51 am
by STC
Обсуждение загрузчика SECU-3.
https://github.com/ashabelnikov/secu3bld

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

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

Posted: Thu Jun 02, 2011 12:58 pm
by Serj_K
Проверка контрольной суммы прошивки проводится в самом начале запуска прошивки. Дальше можно просто заблокировать работу. Но запорченными могут быть разные фрагменты прошивки, например неиспользуемая таблица. В таком случае лишаемся работы блока, хотя могли бы спокойно работать.

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

Posted: Thu Jun 02, 2011 10:17 pm
by Arseniy
А что, часто прошивка записывается с ошибкой или слетает? Думаю при записи КС должен проверять программатор или менеджер. В процессе работы это очень редкий случай можно просто сигнализировать CE при включении.

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

Posted: Tue Oct 25, 2011 8:19 am
by STC
Как повысить скорость загрузки прошивки?
В параметрах SECU-3 можно менять только скорость обмена данными с прошивкой. Чтобы повысить скорость загрузки прошивки (скорость работы с загрузчиком):
1. Нужно пересобрать загрузчик (в коде загрузчика указывается скорость);
2. В настройках менеджера для загрузчика указать нужную скорость;
3. Перепрошить загрузчик программатором;
4. Поставить в менеджере галочку "бутлоадер запущен аварийно" и залить прошивку.

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

Posted: Tue Oct 25, 2011 9:37 am
by Stranger21
ах , вот оно что.
тоесть меняя скорость работы в менеджере , это будет меняться только онлайн режим работы , скорость которого на 9600 , стабильна , и не вызывает нареканий. ее вполне хватает для отображения данных . во всех диагностических системах авто , к слову сказать , скорости примерно такиеже

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

спасибо

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

Posted: Tue Oct 25, 2011 9:45 am
by Stranger21
вопрос!!!!!! , загрузчик , же содержиться в прошивке!!! ввиде просто его тела , тоесть мы еготоже перешиваем веть каждый раз когда заливаем прошивку? правильно?
значит , если я пересоберу загрузчик , вставлю его тело в прошивку и залью - этого веть будет достаточно?
или если я залью загрузчик програматором , но потом буду заливать новую прошивку и она его затрет!!!!

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

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

Posted: Tue Oct 25, 2011 10:09 am
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

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

Posted: Tue Oct 25, 2011 10:29 am
by Stranger21
да я все уже нашел , два байта меняються в теле загрузчика . 19.200 думаю попробовать а выше уже и не нужно . стабильность важнее

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

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

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

Posted: Tue Oct 25, 2011 10:46 am
by STC
Проверь значения, которые я привел. Возможно что в будущем добавлю их в исходный код прошивки.

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

Posted: Tue Oct 25, 2011 11:15 am
by Stranger21
Да числа верные