|
Вопросы по реализации бутлоадера, at91sam7s64, IAR5.41 |
|
|
|
 |
Ответов
|
Jul 29 2010, 08:40
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(mempfis_ @ Jul 29 2010, 12:28)  1. Правильно ли я понимаю что для ARM бутлоадер это обычная программа (в отличии от AVR) которая может начинаться с какого угодно адреса? 3. Если п.1 верный то где во flash лучше располагать бутлоадер (в начале или в конце)? Обычно процессор все-таки стартует с загрузчика, поэтому в начале. Цитата(mempfis_ @ Jul 29 2010, 12:28)  2. Чтобы иметь возможность прошить flash собственно подпрограммы прошивки flash должны находится в оперативной памяти? Да. Цитата(mempfis_ @ Jul 29 2010, 12:28)  4. Как быть со стартапом приложения? Если я в бутлоадере инициализирую стеки, тактовый генератор и т.д. то можно ли исключить стартап из приложения и просто вызвать main? Или лучше произвести сброс переферии и вызвать приложение со стартапом? Ну уж стеки точно стоит инициализировать заново, а с периферией смотрите сами, как удобнее. Цитата(mempfis_ @ Jul 29 2010, 12:28)  5. Достаточно ли будет выделить в flash сегмент и размещать в нём основную программу или в startup и LowLevelInit() нужно будет както дополнительно учитывать что в МК живёт ещё и бутлоадер? Зависит от п.4 Цитата(mempfis_ @ Jul 29 2010, 12:28)  Теперь мои соображения по поводу бутлоадера - поправте если гдето буду не прав: В общем-то все правильно, только почему у загрузчика нет никакой самостоятельности в плане запуска программы? В моем варианте загрузчик действовал по такому алгоритму: 1. Проверка состояния внешнего пина, если имеется нужный уровень - переходим к п.4 2. Проверка наличия сигнатуры по определенному адресу RAM, при совпадении переходим к п.4 3. Проверка CRC имеющейся во флеш программы, если все в порядке - запускаем ее на исполнение 4. Ждем загрузку
|
|
|
|
|
Jul 29 2010, 08:53
|

Профессионал
    
Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409

|
Спасибо за быстрый ответ. В целом начинает проясняться стуктура проекта. Не могли-бы Вы поянить вот эту фразу: Цитата Ну уж стеки точно стоит инициализировать заново Обозначает ли это то что я должен компилировать приложение с подключённым стартапом и вызывать приложение из бутлоадера не с ф-ии main а начиная с начала секции приложения? Цитата В общем-то все правильно, только почему у загрузчика нет никакой самостоятельности в плане запуска программы? Это для отладки запуск приложения по командам с терминала. А вообще предполагается проверка CRC секции приложения и если там всё ОК то автоматический запуск приложения.
|
|
|
|
|
Jul 29 2010, 09:31
|

Профессионал
    
Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409

|
Цитата Помимо стеков есть еще копирование секций, инициализация переменных и ZI, и все это происходит до main. Так что стартап, хоть и в сокращенном виде, но должен присутствовать. С этим понятно - вставлю startup Цитата Кроме того, еще надо отдельно определиться с векторами и ремапом, т.к. тут возможны варианты. Вот тут мне не всё понятно но спрашивать буду когда дойдёт до этого дело. Спасибо за консультации. Займусь общей организацией проекта
|
|
|
|
Сообщений в этой теме
mempfis_ Вопросы по реализации бутлоадера Jul 29 2010, 08:28    mempfis_ Дошёл до того момента когда бутлоадер вот-вот уже ... Aug 12 2010, 08:04     aaarrr Цитата(mempfis_ @ Aug 12 2010, 12:04) Дос... Aug 12 2010, 12:15      mempfis_ Цитата(aaarrr @ Aug 12 2010, 15:15) На пе... Aug 16 2010, 13:44 dimka76 Цитата(mempfis_ @ Jul 29 2010, 12:28) P.S... Jul 29 2010, 08:57 mempfis_ Цитата(dimka76 @ Jul 29 2010, 11:57) http... Jul 29 2010, 08:59 sergeeff Ну и если вы задумаете еще и на С++ постепенно пер... Jul 29 2010, 11:13 Exeland Я тоже занят написанием загрузчика. А как заставит... Aug 16 2010, 10:18 aaarrr Цитата(Exeland @ Aug 16 2010, 14:18) Я то... Aug 16 2010, 10:24 Exeland Я с линкером не работал. Можете дать кусочек кода ... Aug 16 2010, 10:27 aaarrr Цитата(Exeland @ Aug 16 2010, 14:27) Я с ... Aug 16 2010, 11:10 Wano Цитата(Exeland @ Aug 16 2010, 13:27) Я с ... Aug 16 2010, 15:06 Exeland Поменял в Target Diolog адреса, грузится если pc=S... Aug 17 2010, 06:16 Wano Цитата(Exeland @ Aug 17 2010, 09:16) Поме... Aug 17 2010, 08:18 Exeland Хотя нет все работает.
Прыжок на ПО делаю так, е... Aug 17 2010, 07:36 Exeland Еще один вопрос. Необходимо разместить константы (... Aug 17 2010, 09:42 aaarrr Цитата(Exeland @ Aug 17 2010, 13:42) Как ... Aug 17 2010, 10:26  Exeland Цитата(aaarrr @ Aug 17 2010, 14:26) Можно... Aug 19 2010, 05:41   Wano Цитата(Exeland @ Aug 19 2010, 08:41) Не м... Aug 20 2010, 09:30 skripach Цитата3. Не делать фиксированную область, а создат... Aug 17 2010, 12:50 aaarrr Думаю, восьми байт как раз достаточно. Если ... Aug 17 2010, 12:57 skripach ЦитатаЕсли "потолком" служил генератор п... Aug 17 2010, 13:32 TU-104 Цитата(mempfis_ @ Aug 16 2010, 19:44) Сег... Feb 19 2014, 11:57 TU-104 Добавил копирование первых 64 байт прошивки в нача... Feb 20 2014, 04:39 ar__systems Я расскажу как я делал. (1788)
И приложение, и пр... Feb 20 2014, 22:07 toweroff Цитата(ar__systems @ Feb 21 2014, 02:07) ... Feb 20 2014, 22:10  ar__systems Цитата(toweroff @ Feb 20 2014, 17:10) а з... Feb 21 2014, 01:06   toweroff Цитата(ar__systems @ Feb 21 2014, 05:06) ... Feb 21 2014, 07:36    ar__systems так прерывания выключил, и все ок Feb 21 2014, 17:03     toweroff Цитата(ar__systems @ Feb 21 2014, 21:03) ... Feb 21 2014, 22:12 TU-104 Цитата(ar__systems @ Feb 21 2014, 04:07) ... Feb 21 2014, 05:07 RabidRabbit Как было сделано у меня (AT91SAM7S32): бутлоадер (... Feb 21 2014, 06:25 TU-104 а все-таки подскажите, как запустить приложение с ... Feb 23 2014, 17:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|