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

 
 
> Стартовый загрузчик, с нуля
ДЕЙЛ
сообщение 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

Сообщений в этой теме
- ДЕЙЛ   Стартовый загрузчик   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
- - AlexandrY   Цитата(ДЕЙЛ @ Sep 2 2014, 12:34) 3. Если ...   Sep 2 2014, 12:37
|- - esaulenka   Цитата(AlexandrY @ Sep 2 2014, 16:37) LPC...   Sep 8 2014, 12:46
- - Сергей Борщ   Справа вверху кнопка "Поиск", в выпадающ...   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 Текстовая версия Сейчас: 23rd July 2025 - 16:35
Рейтинг@Mail.ru


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