реклама на сайте
подробности

 
 
> Стартовый загрузчик, с нуля
ДЕЙЛ
сообщение Sep 2 2014, 09:34
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 234
Регистрация: 7-11-13
Пользователь №: 79 085



Хочется понять, как работает эта штука? В моём представлении это маленькая программа, находящаяся где-то в хвосте флеш-памяти. При старте начинается выполнение программы с нулевого адреса, где проверяется выполнение какого-то условия, например, уровень на определённой ножке. Если условие выполняется, то следует инструкция вроде JMP Bootloader, т.е. переход в область флеш, содержащей команды загрузчика, которые выполняет ЦПУ. Загрузчик принимает данные в виде файла *.bin по какому-либо интерфейсу МК, эти данные он раскладывает во флеш-памяти, затирая старую версию прошивки. Причём в новой версии программы должна быть та же самая процедура перехода в область загрузчика на случай следующего обновления. Если в этом месте мысли правильные, то дальше имеются мысли по поводу организации самопального загрузчика:
1. Пишется программа загрузчика - процедуры приёма и раскладки данных в памяти, компилируется в виде файла *.bin.
2. Пишется программа для записи полученного файла куда-нибудь в дальний угол памяти, начиная с определённого адреса, допустим 0х1000000. Всё, загрузчик находится в памяти.
3. Пишем рабочую программу, которая в самом начале содержит условие с переходом вроде JMP 0x1000000. Размер прошивки должен быть всегда такой, чтобы не затёрся код загрузчика.

Примерно такие у меня измышления. Насколько они правильные? Если правильные, то имеются попутные вопросы:
1. Как организовать запись байта по определённому адресу флеш на С в IAR?
2. В MSP430 перед изменением флеш нужно предварительно настроить контроллер флеш-памяти. Как обстоит дело в LPC1778?
3. Если в LPC1778 прошивка записывается через UART0, то там уже есть загрузчик? Если он есть, то можно ли его случайно стереть?

Где можно подробнее почитать на эту тему с самого нуля с пошаговой инструкцией создания загрузчика?

P.S Вынтернете гуглил на эту тему ровно несколько минут, попадались всякие описания загрузчиков планшетов, смартфонов и прочих девайсов.

Сообщение отредактировал ДЕЙЛ - Sep 2 2014, 09:39
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlexandrY
сообщение Sep 2 2014, 12:37
Сообщение #2


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(ДЕЙЛ @ Sep 2 2014, 12:34) *
3. Если в LPC1778 прошивка записывается через UART0, то там уже есть загрузчик? Если он есть, то можно ли его случайно стереть?

Где можно подробнее почитать на эту тему с самого нуля с пошаговой инструкцией создания загрузчика?


Конечно есть там уже загрузчик. А то откуда там ISP и IAP? Из воздуха возникают?
Программными средствами там и защита делается. Поэтому LPC так легко взламывают.

Прочитать тоже об этом так просто не получится, на форумах про NXP изредка светятся энтузиасты занимающиеся реверсингом встроенных загрузчиков.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Sep 8 2014, 12:46
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(AlexandrY @ Sep 2 2014, 16:37) *
LPC так легко взламывают.


Чтобы не быть голословным, что "плохие процессоры "эль" взламывают, а хорошие процессоры "ка" - не взламывают", можно увидеть ссылочки на проделанные работы? И порядок цен интересен.

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


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ДЕЙЛ   Стартовый загрузчик   Sep 2 2014, 09:34
- - smalcom   Цитатанаходящаяся где-то в хвосте флеш-памяти нет....   Sep 2 2014, 10:40
|- - ДЕЙЛ   Цитата(smalcom @ Sep 2 2014, 14:40) нет. ...   Sep 2 2014, 11:43
|- - adnega   Цитата(ДЕЙЛ @ Sep 2 2014, 15:43) В начале...   Sep 2 2014, 12:22
- - Lagman   А если загрузчик и программа используют одно преры...   Sep 2 2014, 11:47
|- - ДЕЙЛ   Цитата(Lagman @ Sep 2 2014, 15:47) А если...   Sep 3 2014, 06:25
|- - adnega   Цитата(ДЕЙЛ @ Sep 3 2014, 10:25) Думаю, ч...   Sep 3 2014, 06:29
- - Сергей Борщ   Справа вверху кнопка "Поиск", в выпадающ...   Sep 2 2014, 13:10
|- - ДЕЙЛ   Цитата(Сергей Борщ @ Sep 2 2014, 17:10) В...   Sep 3 2014, 06:47
|- - adnega   Цитата(ДЕЙЛ @ Sep 3 2014, 10:47) я свои и...   Sep 3 2014, 07:53
|- - ДЕЙЛ   Цитата(adnega @ Sep 3 2014, 11:21) Дык, в...   Sep 3 2014, 08:09
- - Сергей Борщ   Цитата(ДЕЙЛ @ Sep 3 2014, 09:25) Думаю, ч...   Sep 3 2014, 07:56
- - ДЕЙЛ   Есть ещё вопрос по безусловному переходу. если на...   Sep 3 2014, 10:34
|- - menzoda   ЦитатаУже интереснее. Как это сделать в IAR? Есть ...   Sep 4 2014, 05:33
||- - ДЕЙЛ   Цитата(menzoda @ Sep 4 2014, 09:33) 2. Ес...   Sep 5 2014, 10:08
||- - menzoda   Цитата(ДЕЙЛ @ Sep 5 2014, 14:08) А если у...   Sep 5 2014, 10:45
||- - ДЕЙЛ   Цитата(menzoda @ Sep 5 2014, 14:45) Может...   Sep 5 2014, 11:09
||- - menzoda   В кратце опишу, как я это вижу. Подробности поведе...   Sep 5 2014, 13:25
||- - ДЕЙЛ   Покопался в настройках линкера, нашёл настройки ли...   Oct 6 2014, 21:21
||- - menzoda   ЦитатаВ каком известном векторе прерывания находит...   Oct 8 2014, 05:17
||- - ДЕЙЛ   Цитата(menzoda @ Oct 8 2014, 09:17) Во-пе...   Oct 8 2014, 18:57
|- - ДЕЙЛ   Цитата(ДЕЙЛ @ Sep 3 2014, 14:34) Есть ещё...   Sep 5 2014, 07:49
- - andrewlekar   Вот исходники загрузчика для LPC178X. Практически ...   Sep 8 2014, 06:39
- - ДЕЙЛ   Пока в исходник загрузчика глубоко не влазил. Хочу...   Sep 30 2014, 10:35
|- - Сергей Борщ   Цитата(ДЕЙЛ @ Sep 30 2014, 13:35) В мануа...   Sep 30 2014, 11:36
|- - ДЕЙЛ   Цитата(Сергей Борщ @ Sep 30 2014, 15:36) ...   Sep 30 2014, 12:50
|- - Lagman   Цитата(ДЕЙЛ @ Sep 30 2014, 16:50) Но ведь...   Sep 30 2014, 14:00
- - toweroff   ДЕЙЛ, я, конечно, ничего против не имею, но такая ...   Oct 8 2014, 14:52
- - menzoda   Не надо ничего сдвигать на 7 битов! Прочитай в...   Oct 8 2014, 19:17
|- - ДЕЙЛ   Цитата(menzoda @ Oct 8 2014, 23:17) Не на...   Oct 8 2014, 19:42
- - ДЕЙЛ   Почему-то в пашаговом режиме после перехода по адр...   Oct 8 2014, 20:55
- - menzoda   Не так считаешь. Векторов прерываний 51, в байтах ...   Oct 9 2014, 04:54
|- - ДЕЙЛ   насчёт перескока на 2кб на какой странице мануала ...   Oct 9 2014, 06:47
|- - menzoda   Цитатанасчёт перескока на 2кб на какой странице ма...   Oct 9 2014, 07:30
|- - ДЕЙЛ   Цитата(menzoda @ Oct 9 2014, 11:30) То ес...   Oct 9 2014, 08:53
- - menzoda   ЦитатаМошть ещё нужно указатель стека на нужное ме...   Oct 9 2014, 10:15
- - ДЕЙЛ   Железно заработало дело было ещё и в указателе ...   Oct 9 2014, 19:26
- - menzoda   ЦитатаЖелезно заработало Наконец! Всем миром з...   Oct 10 2014, 04:59
- - ДЕЙЛ   Оставлю тут свой код загрузчика на всякий случай, ...   Feb 16 2015, 12:28


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 04:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.0141 секунд с 7
ELECTRONIX ©2004-2016