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

 
 
 
Reply to this topicStart new topic
> Самописный бутлоадер для sam7x, непонятки...
Dron_Gus
сообщение Jun 1 2007, 11:25
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Пишу под свои нужды (обновление прошивки) бутлоадер под sam7x. Пока написал скелет. Работаю в IAR.
Для самого бутлоадера сделал отдельный файл xcl в котором урезал размер rom до 8 кб. Т.е. бутлоадер сидит в первых 8 кб. Остальное - сама софтина. Соответственно для самой программы тоже подредактировал файл и теперь -DROMSTART=00002000.
Все вектора (кроме reset)в cstartup от бутлоадера поправил - прыгают на 8 кб вперед.
Сделал так для удобства разработки основной софтины - меняешь файл настройки линкера и можно отлаживать либо делать релизный билд со смещением.
Теперь проблемма. Из бутлоадера перехожу на основную программу так:

app = (void (*) ()) 0x00002000;
AT91C_BASE_RSTC->RSTC_RCR = (0xA5000000 | AT91C_RSTC_PERRST);
(app)();

Так вот если идти по шгагам в отладчике - все нормально проходит и основная программа запускается и работает. Если отключить отладчик - то дальше бутлоадера не идет. sad.gif



Вопрос: может я что забыл или не так деалю?


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 1 2007, 13:15
Сообщение #2


Гуру
******

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



Цитата(Dron_Gus @ Jun 1 2007, 14:25) *
Так вот если идти по шгагам в отладчике - все нормально проходит и основная программа запускается и работает. Если отключить отладчик - то дальше бутлоадера не идет. sad.gif
Ага, напарывался.
Код
   // Reset peripherial
    AT91C_BASE_RSTC->RSTC_RCR = (0xA5ULL * AT91C_RSTC_KEY / 0xFF) | AT91C_RSTC_PERRST;
    while(AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_SRCMP);
И не спрашивайте почему smile.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jun 1 2007, 13:33
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



beer.gif спасибо. Действительно работает. Надо бы в том же стиле исправить функцию перезагрузки проца.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post

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

 


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


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