|
Ещё раз о бутлоадере, Некоторые тонкости. |
|
|
|
 |
Ответов
|
Oct 9 2007, 07:28
|

Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669

|
Цитата(SasaVitebsk @ Oct 4 2007, 13:17)  Задумка такая.
По старту попадаем в бут. Там считаем CRC и если Ok - выходим на саму приложение. Если не Ok то переходим на сам лодырь.
В приложении по команде переходим непосредственно на лоадырь. То есть мне надо две точки входа. По сбросу и по команде. Хотелось бы использовать незадействованные вектора бутлоадера. Например +2. Как это сделать. Если использовать pragma location, то наверняка будет linker ругаться.
Конечно можно упростить задачу и использовать какой нибудь признак в EEPROM. Или портить CRC к примеру, но что-то мне не нравится такой подход.
А кто как делает? Добавлю и я свои наработки: 1. Использовать ногу процессора - метод надежный, но IMHO это будет "жирновато", ног не всегда хватает+на плате надо вешать на эту ногу резюк, кроме того в разных проектах это могут быть разные ноги. 2. Вариант с EEPROM более предпочтителен, поскольку 1-й старт после прошивки программатором BootLoader-a всегда будет на него. Тогда при отладке приложения работа будет такой: а) - загрузка приложения б) подача BootLoader-у команды передать управление на приложение, т.е. на адрес 0x0000 После отладки - прописать в EEPROM признак: сразу после Reset передавать управление на приложение. Правда здесь есть один подводный камень - зависание приложения или необходимость его коррекции. Здесь можно использовать такой метод: Если в течении, например 1-ой минуты проходит не менее 10-ти горячих рестартов, то в EEPROM устанавливается признак блокировки перехода на приложение.
--------------------
Вяжешь - вой, а поедешь - песни пой. Между "хочу" и "можно" всегда есть дистанция
|
|
|
|
|
Oct 9 2007, 10:45
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(IJAR @ Oct 9 2007, 10:28)  1. Использовать ногу процессора - метод надежный, но IMHO это будет "жирновато", ног не всегда хватает+на плате надо вешать на эту ногу резюк, кроме того в разных проектах это могут быть разные ноги. Используется нога, которая в приложении выполняет какую-либо функцию. Например выход UART или выход на светодиод. Подтяжка желательна, но это может быть штатная подтяжка (например подтяжка CS внешнего устройства или тот же светодиод). В разных проектах пишется #define MANUAL_PROG C,3,L или #define MANUAL_PROG B,0,H
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
SasaVitebsk Ещё раз о бутлоадере Oct 4 2007, 09:17 Сергей Борщ Цитата(SasaVitebsk @ Oct 4 2007, 12:17) Х... Oct 4 2007, 09:37 IJAR Цитата(Сергей Борщ @ Oct 4 2007, 13:37) Е... Oct 9 2007, 11:40  Сергей Борщ Цитата(IJAR @ Oct 9 2007, 14:40) А какой ... Oct 9 2007, 12:01   IJAR Цитата(Сергей Борщ @ Oct 9 2007, 16:01) Ч... Oct 9 2007, 12:33    Сергей Борщ Цитата(IJAR @ Oct 9 2007, 15:33) Но есть ... Oct 9 2007, 14:33 SasaVitebsk Спасибо Сергей. Всё доступно объяснил. Подходят о... Oct 4 2007, 19:14 arttab а почему бы не объявить переменную в озу в загрузч... Oct 7 2007, 14:34 Сергей Борщ Цитата(arttab @ Oct 7 2007, 17:34) В загр... Oct 8 2007, 08:16 SasaVitebsk Сергей, всётаки по коду не уложился в 2к. Со своим... Oct 9 2007, 23:55 Сергей Борщ Цитата(SasaVitebsk @ Oct 10 2007, 02:55) ... Oct 10 2007, 10:58  SasaVitebsk Цитата(Сергей Борщ @ Oct 10 2007, 13:58) ... Oct 10 2007, 13:35   Сергей Борщ Цитата(SasaVitebsk @ Oct 10 2007, 16:35) ... Oct 10 2007, 15:46    Dog Pawlowa Цитата(Сергей Борщ @ Oct 10 2007, 18:46) ... Oct 10 2007, 16:42     Сергей Борщ Цитата(Dog Pawlowa @ Oct 10 2007, 19:42) ... Oct 10 2007, 16:57   singlskv Цитата(SasaVitebsk @ Oct 10 2007, 17:35) ... Oct 16 2007, 18:01    Сергей Борщ Цитата(singlskv @ Oct 16 2007, 21:01) Ста... Oct 17 2007, 09:56 SasaVitebsk Код
2 106 bytes of CODE memory
1 430 bytes of D... Oct 11 2007, 09:07 Waso Извиняюсь что лезу в чужую тему, но есть дилетантс... Oct 12 2007, 08:36 Сергей Борщ Цитата(Waso @ Oct 12 2007, 11:36) Я плани... Oct 12 2007, 11:04 Waso Спасибо за совет!
Нашел апноты. Изучаю.
Safe ... Oct 15 2007, 07:02 SasaVitebsk Ещё один вопрос, напрямую с бутлоадером не связанн... Oct 16 2007, 10:28 Сергей Борщ Цитата(SasaVitebsk @ Oct 16 2007, 13:28) ... Oct 16 2007, 12:51  IgorKossak Цитата(Сергей Борщ @ Oct 16 2007, 15:51) ... Oct 16 2007, 20:32 SasaVitebsk Спасибо, но я не планирую запрещать локи на чтение... Oct 16 2007, 16:47 SasaVitebsk 2 singlskv. Не планирую переходить на GCC. Работы ... Oct 16 2007, 20:58 singlskv Цитата(SasaVitebsk @ Oct 17 2007, 00:58) ... Oct 17 2007, 20:29  zltigo Цитата(singlskv @ Oct 17 2007, 23:29) то ... Oct 17 2007, 20:47   singlskv Цитата(zltigo @ Oct 18 2007, 00:47) Т.е. ... Oct 17 2007, 20:57    zltigo Цитата(singlskv @ Oct 17 2007, 23:57) Опя... Oct 17 2007, 21:12     singlskv Цитата(zltigo @ Oct 18 2007, 01:12) Конте... Oct 17 2007, 21:53      zltigo Цитата(singlskv @ Oct 18 2007, 00:53) Ско... Oct 17 2007, 22:04       singlskv Цитата(zltigo @ Oct 18 2007, 02:04) Легко... Oct 17 2007, 22:24        zltigo Цитата(singlskv @ Oct 18 2007, 01:24) а п... Oct 17 2007, 22:35         singlskv Цитата(zltigo @ Oct 18 2007, 02:35) В aes... Oct 17 2007, 22:55  SasaVitebsk Цитата(singlskv @ Oct 17 2007, 23:29) Ну ... Oct 18 2007, 19:35   Сергей Борщ Цитата(SasaVitebsk @ Oct 18 2007, 22:35) ... Oct 18 2007, 20:40   zltigo Цитата(SasaVitebsk @ Oct 18 2007, 22:35) ... Oct 18 2007, 22:05   singlskv To zltigo и SasaVitebsk,
признаю, погорячился насч... Oct 18 2007, 22:48    zltigo Цитата(singlskv @ Oct 19 2007, 01:48) Спр... Oct 19 2007, 07:31    Непомнящий Евгений Цитата(singlskv @ Oct 19 2007, 02:48) Ну ... Oct 19 2007, 07:37     zltigo Цитата(Непомнящий Евгений @ Oct 19 2007, 10... Oct 19 2007, 08:01 Непомнящий Евгений Если максимальная оптимизация по размеру, то первы... Oct 19 2007, 08:33 singlskv Цитата(Непомнящий Евгений @ Oct 19 2007, 11... Oct 19 2007, 15:08  SasaVitebsk Цитата(singlskv @ Oct 19 2007, 18:08) А о... Oct 20 2007, 20:07   singlskv Цитата(SasaVitebsk @ Oct 21 2007, 00:07) ... Oct 21 2007, 17:28    pvp Цитата(singlskv @ Oct 21 2007, 21:28) __z... Oct 22 2007, 15:24     Сергей Борщ Цитата(pvp @ Oct 22 2007, 18:24) Поясните... Oct 22 2007, 15:33      pvp Цитата(Сергей Борщ @ Oct 22 2007, 19:33) ... Oct 23 2007, 14:02 SasaVitebsk Внимательно просмотрю.
Правда я отказался на сегод... Oct 22 2007, 10:43 singlskv Цитата(SasaVitebsk @ Oct 22 2007, 14:43) ... Oct 22 2007, 16:43 SasaVitebsk Я когда первый раз увидел результаты компилировани... Oct 22 2007, 21:24 skripach Не стал создавать новую тему, поэтому здесь.
Можно... Nov 9 2009, 14:11 skripach Что никто не знает? ...или я что-то не то спросил. Nov 12 2009, 07:30 zltigo Цитата(skripach @ Nov 12 2009, 10:30) Что... Nov 12 2009, 09:39 KSN Есть вопрос по прерываниям в bootloader и applicat... Feb 27 2010, 09:55 Сергей Борщ Цитата(KSN @ Feb 27 2010, 11:55) Может у ... Feb 27 2010, 11:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|