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

 
 
> bootloader на ATMega48
РоманО
сообщение Sep 25 2008, 15:29
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 25-09-08
Пользователь №: 40 478



Друзья. Сомнения мучают меня.
Хотя начну попорядку.
Появилась задумка сделать bootloader под Мегу48. В качестве среды програмирования выбрал IAR. Особенность 48 в том, что у нее нет bootsection. Приходится все описывать вручную. Для начала определяем местоположение загрузчика для чего в линкере прописываем
Цитата
-Z(CODE)MYSEGMENT=800-9FF

Все вроде бы в порядке и в выходном файле появляется в нужном месте содержание загрузчика. И все вроде бы хорошо. Загрузчиком начинаю стирать память контроллера, и вроде бы даже хорошо получается, но когда дохожу до определенного положения стирание прекращается и цикл стирания страниц памяти вылетает. Под пристальным взглядом дизассемблера выясняется, что напоролся на инициализацию секции MYSEGMENT.
Загрузчик начинается с адреса 0x0800, а инициализация секции загрузчика с 0x01C0. Кстати на этом месте заканчивается основная программа.
Могу ли я расположить код инициализации секции MYSEGMENT уже после самого bootloadera.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
РоманО
сообщение Sep 29 2008, 14:12
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 25-09-08
Пользователь №: 40 478



Блин, я так и не увидел ответа. Может просто какой-нибудь специалист скажет, что просто невозможно линкеру сказать куда писать инициализацию секции.
Идея бутлоадера заключается в следующем. Работать с устройством собираюсь по UART с дальнейшим использованием FT232. Заказчику отправляется программа, а далее в момент появления новой версии софта, новый софт должен прописываться из этой программы коммутации с устройством. При этом не подразумевается перезагрузка устройства, а использование FTDI вобще делает очень не юзабельным загрузку бутлодыря по ресету. Хочется, зарезервировать команду, которая будет запускать процесс перезаливки программы. Поскольку стратегия загрузчика выбрана таким образом, то не важно на чем отрабатывать процесс залавки, потому как стандартная область бутлодыря не используется.
Задам вопрос снова. Можно ли указывать линкеру IAR место куда прописывать инициализацию нового сектора
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 29 2008, 14:22
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(РоманО @ Sep 29 2008, 17:12) *
Идея бутлоадера заключается в следующем.
... Заказчику отправляется программа, а далее в момент появления новой версии софта, новый софт должен прописываться из этой программы коммутации с устройством.
Это стандартная идея.
Цитата
Хочется, зарезервировать команду, которая будет запускать процесс перезаливки программы. Поскольку стратегия загрузчика выбрана таким образом, то не важно на чем отрабатывать процесс залавки, потому как стандартная область бутлодыря не используется.
Задам вопрос снова. Можно ли указывать линкеру IAR место куда прописывать инициализацию нового сектора

Такая стратерия загрузки прекрасно уживается с бутлоадером в отдельной секции.
По команде запуска процесса обновления прошивки - записать в eeprom запрос на смену прошивки и ребутнуть МК по WDT. Далее стартует бутлоадер из штатной секции, проверяет запрос в eeprom, начинает процесс общения с вашей программой и прошивает все что надо. Но должен быть камень с соотв. секцией (m8/m88)

Цитата
Можно ли указывать линкеру IAR место куда прописывать инициализацию нового сектора

см. #pragma segment
и файл lnkm48s.xcl
Go to the top of the page
 
+Quote Post
РоманО
сообщение Sep 29 2008, 14:50
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 25-09-08
Пользователь №: 40 478



Цитата(defunct @ Sep 29 2008, 18:22) *
см. #pragma segment
и файл lnkm48s.xcl

В том то и дело, что все это я делаю. И делаю правильно, но когда начинаю вытирать память, в какой-то момент цикл стирания памяти вылетает, потому как доходит до странного адреса 0x1c0, если разобрать программу дизассемблером, то по этому адресу лежит инициализация сегмента, в котором лежит бутлодырь. Сам же бутлодырь начинается с адреса 0х800. Вот если бы можно было бы инициализацию сегмента перенести в конец бутлодыря то все было бы просто супер
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- РоманО   bootloader на ATMega48   Sep 25 2008, 15:29
- - defunct   Цитата(РоманО @ Sep 25 2008, 18:29) Появи...   Sep 26 2008, 10:30
|- - haker_fox   Цитата(defunct @ Sep 26 2008, 19:30) Вы б...   Sep 27 2008, 03:07
|- - _Pasha   Цитата(defunct @ Sep 26 2008, 14:30) Вы б...   Sep 27 2008, 06:33
- - IgorKossak   РоманО, у Вас бутлоадер и приложение в одном проек...   Sep 26 2008, 12:10
- - sensor_ua   Можно подсмотреть, как делать bootloader для ATmeg...   Sep 27 2008, 03:57
- - sensor_ua   ЦитатаВопрос отнюдь не религиозный IMHO, именно ре...   Sep 27 2008, 07:28
|- - _Pasha   Цитата(sensor_ua @ Sep 27 2008, 11:28) IM...   Sep 27 2008, 11:30
|- - defunct   Цитата(sensor_ua @ Sep 27 2008, 10:28) IM...   Sep 29 2008, 13:46
- - sensor_ua   ЦитатаЭто не в счет, Почему же? В чужом исходнике ...   Sep 27 2008, 12:22
|- - _Pasha   Цитата(sensor_ua @ Sep 27 2008, 16:22) эт...   Sep 27 2008, 12:37
|- - Огурцов   Цитата(РоманО @ Sep 29 2008, 14:50) цикл ...   Sep 30 2008, 05:44
|- - Сергей Борщ   Цитата(РоманО @ Sep 29 2008, 17:50) если ...   Oct 1 2008, 20:21
- - sensor_ua   ЦитатаОк, тогда затолкните эти 3.5k в 1k. для (m8/...   Sep 29 2008, 21:20
|- - defunct   Цитата(sensor_ua @ Sep 30 2008, 00:20) За...   Sep 29 2008, 23:58
- - Rst7   ЦитатаСопровождение: кому придет в голову править ...   Sep 30 2008, 04:55
- - sensor_ua   ЦитатаЗатолкнул. ровно в 1k под жвак (1024). Аплод...   Sep 30 2008, 06:25
- - GSG   Если не критично для программы, то поменяйте места...   Sep 30 2008, 10:40
- - bodja74   2PomanO Короче Здесь лежит готовый загрузчик п...   Oct 1 2008, 14:40
- - Огурцов   Цитата(bodja74 @ Oct 1 2008, 14:40) Прикр...   Oct 1 2008, 17:03


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

 


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


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