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

 
 
 
Reply to this topicStart new topic
> Проблемма с bootloaderom в ATMega1280
SergeyA100
сообщение Oct 7 2009, 05:39
Сообщение #1





Группа: Участник
Сообщений: 4
Регистрация: 7-10-09
Пользователь №: 52 798



Зашил бутлоадер в атмегу. По RS-232 передал прогу, она нормально прошилась (читал програматором AVReal), после чего несмотря на установленный фьюз BOOTRST=0 контроллер запускается с 0-го адреса sad.gif

Сообщение отредактировал SergeyA100 - Oct 7 2009, 06:14
Go to the top of the page
 
+Quote Post
Legotron
сообщение Oct 7 2009, 06:56
Сообщение #2


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Цитата(SergeyA100 @ Oct 7 2009, 09:39) *
Зашил бутлоадер в атмегу. По RS-232 передал прогу, она нормально прошилась (читал програматором AVReal), после чего несмотря на установленный фьюз BOOTRST=0 контроллер запускается с 0-го адреса sad.gif

Что значит запускается с 0-го адреса?
Вы под отладчиком смотрели с какого адреса он запускается?
Вполне возможно что в бутлоадере стоит джамп на 0-й адрес.
Посмотрите логику работы бутлоадера.
Go to the top of the page
 
+Quote Post
SergeyA100
сообщение Oct 7 2009, 07:13
Сообщение #3





Группа: Участник
Сообщений: 4
Регистрация: 7-10-09
Пользователь №: 52 798



Компилирую бутлоадер. Прошиваю его АВРиалом. Прошло. Работает. Читаю из меги в файл. Сохраняю.
При старте лоадера конфигурирую порты F и К как выходы, зажигаю все диоды подключенные к меге.
При ресете стартует с бутлоадера. Вроде все ОК. После чего по RS-232 заливаю тестовую прогу. Суть ее в том что бы
зажечь тоько диоды на порту К. После чего по ресету переход идет на тестовую прогу, по сбросу питания то же. Читаю
из меги в файл. Сравниваю - отличий в секции бутлоадера нет. По адресу 1F800 ( размер загрузчика 1 кСлово)
команда перехода на начало бутлоадера.

BOOTSZ = 2;
BOOTRST = 0
Go to the top of the page
 
+Quote Post
Legotron
сообщение Oct 7 2009, 07:36
Сообщение #4


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



В чем заключается проблема?
Без кода бутлоадера мне тяжело понять логику его работы.
Go to the top of the page
 
+Quote Post
SergeyA100
сообщение Oct 7 2009, 07:47
Сообщение #5





Группа: Участник
Сообщений: 4
Регистрация: 7-10-09
Пользователь №: 52 798



Проект в IARе, после того как лоадер успешно прошил атмегу, после сброса запускуается не лоадер а прошитая программа

Прикрепленный файл  bootloader.rar ( 12.09 килобайт ) Кол-во скачиваний: 161
Go to the top of the page
 
+Quote Post
Legotron
сообщение Oct 7 2009, 08:29
Сообщение #6


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Цитата(SergeyA100 @ Oct 7 2009, 11:47) *
Проект в IARе, после того как лоадер успешно прошил атмегу, после сброса запускуается не лоадер а прошитая программа

Посмотрел код лоадера.
Действительно лоадер должен висеть на строке:
Код
Numb_Byte = read_mesage();            // ждем приема посылки

если только вы в это время не отсылаете ему команду:
Код
      }else if (Buffer[1] == 0xFF ){        // если пришла команда конец файла
                 break;                    // вылетаем из цикла


Я бы посмотрел на то, не пересылаете ли вы что-либо лоадеру уже после загрузки приложения и на то что переменная Buffer не инициализирована, в ней может содержаться мусор.
Go to the top of the page
 
+Quote Post
SergeyA100
сообщение Oct 7 2009, 09:13
Сообщение #7





Группа: Участник
Сообщений: 4
Регистрация: 7-10-09
Пользователь №: 52 798



Погонял в AVRStudio - если шъеш первую страницу - то адрес в команде перехода по вектору прерывания bootrst меняется на 0000 - почему - не понимаю я ту область памяти вообще не трогаю
Go to the top of the page
 
+Quote Post
Legotron
сообщение Oct 8 2009, 06:44
Сообщение #8


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Цитата(SergeyA100 @ Oct 7 2009, 13:13) *
Погонял в AVRStudio - если шъеш первую страницу - то адрес в команде перехода по вектору прерывания bootrst меняется на 0000 - почему - не понимаю я ту область памяти вообще не трогаю

Посмотрите чтобы в AVRStudio была правильно указана область памяти .text (начальный адрес должен быть началом области загрузчика)
Go to the top of the page
 
+Quote Post

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

 


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


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