Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Самописный бутлоадер для sam7x
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Dron_Gus
Пишу под свои нужды (обновление прошивки) бутлоадер под 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



Вопрос: может я что забыл или не так деалю?
Сергей Борщ
Цитата(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
Dron_Gus
beer.gif спасибо. Действительно работает. Надо бы в том же стиле исправить функцию перезагрузки проца.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.