Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UC3A Свой загрузчик
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > AVR32
cpl
Приветствую !
Пишу свой загрузчик для uc3a0512, загружаю файл по x-modemу
использую avr32studio+gcc, уже умею загружать файл и прошивать во внутренею флеш

расположение по памяти такое:
------------------------------------
0х80000000: + 0 flash
boot-загрузчик
0x80020000: + 128k flash
program-то что прошил
------------------------------------

возникли вопросы:

Как организовать переход на загруженную прошивку из загрузчика?
Так понимаю что программу которую прошиваю загрузчиком нужно собирать со смещением 128к от начала как это можно сделать ?
Можно ли поместить подпрограму перепрошивки во внутреннею RAM и оттуда запустить ?
smile3046.gif
altlogic
cpl, это copy-past:)
Скажите пожалуйста, а что значит "загружаю файл по x-modemу"? Каким аппаратным средством вы загружаете прошивку?
Переход на программу я думаю делается обыкновенным джампом на адрес "0x80020000: + 128k flash".
"Можно ли поместить подпрограму перепрошивки во внутреннею RAM и оттуда запустить ?" - вопрос теоретический - какой архитектуры процессор - гарвардской или фон-неймановской Вам карты в руки, проверяйте на практике
cpl
Цитата(altlogic @ Jun 13 2009, 08:42) *
cpl, это copy-past:)
Скажите пожалуйста, а что значит "загружаю файл по x-modemу"? Каким аппаратным средством вы загружаете прошивку?
Переход на программу я думаю делается обыкновенным джампом на адрес "0x80020000: + 128k flash".
"Можно ли поместить подпрограму перепрошивки во внутреннею RAM и оттуда запустить ?" - вопрос теоретический - какой архитектуры процессор - гарвардской или фон-неймановской Вам карты в руки, проверяйте на практике


загружаю через уарт,
переход сделал как вызов функции.
boeing1970
Объясните, пожалуйста, как на "С" организовать переход на адрес 0x80020000.
Там на ассемблере переходы только относительно PC, а мне нужно прыгнуть на абсолютный адрес.
Я писал оператор: asm ("br 0x8002000"); , но компилятор ругался.
На Меге-16 все получалось:
там было так: asm("jmp 0"); либо asm("jmp 0x7000"); и все проходило, пог прыгнуть из загрузчика на пользовательскую программу, а мог назад.

Подскажите, что нужно написать в программе на С для avr32uc3b0..., чтобы уйти на пользовательскую программу (загрузчик решил писать сам, потому что хотелось бы, чтобы драйвер для загрузчика и пользовательской программы был один и тот же - свой, а не фирменный)
Dopler
Я просто вызываю функцию
AppMain();
Которая объявлена таким образом
void(*AppMain)(void) = ((void(*)(void))APP_FLASH_ADR);

где APP_FLASH_ADR - адрес приложения, в моем случае 0x80004000
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.