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

 
 
 
Reply to this topicStart new topic
> UC3A Свой загрузчик, запуск загруженной прошивки ?
cpl
сообщение Jun 11 2009, 16:48
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 6-12-04
Пользователь №: 1 340



Приветствую !
Пишу свой загрузчик для uc3a0512, загружаю файл по x-modemу
использую avr32studio+gcc, уже умею загружать файл и прошивать во внутренею флеш

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

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

Как организовать переход на загруженную прошивку из загрузчика?
Так понимаю что программу которую прошиваю загрузчиком нужно собирать со смещением 128к от начала как это можно сделать ?
Можно ли поместить подпрограму перепрошивки во внутреннею RAM и оттуда запустить ?
smile3046.gif
Go to the top of the page
 
+Quote Post
altlogic
сообщение Jun 13 2009, 04:42
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 2-12-06
Из: г. Хабаровск
Пользователь №: 23 035



cpl, это copy-past:)
Скажите пожалуйста, а что значит "загружаю файл по x-modemу"? Каким аппаратным средством вы загружаете прошивку?
Переход на программу я думаю делается обыкновенным джампом на адрес "0x80020000: + 128k flash".
"Можно ли поместить подпрограму перепрошивки во внутреннею RAM и оттуда запустить ?" - вопрос теоретический - какой архитектуры процессор - гарвардской или фон-неймановской Вам карты в руки, проверяйте на практике


--------------------
С уважением, Вячеслав
Go to the top of the page
 
+Quote Post
cpl
сообщение Aug 29 2009, 20:30
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 6-12-04
Пользователь №: 1 340



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


загружаю через уарт,
переход сделал как вызов функции.
Go to the top of the page
 
+Quote Post
boeing1970
сообщение Sep 8 2011, 12:41
Сообщение #4





Группа: Новичок
Сообщений: 1
Регистрация: 8-09-11
Пользователь №: 67 073



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

Подскажите, что нужно написать в программе на С для avr32uc3b0..., чтобы уйти на пользовательскую программу (загрузчик решил писать сам, потому что хотелось бы, чтобы драйвер для загрузчика и пользовательской программы был один и тот же - свой, а не фирменный)
Go to the top of the page
 
+Quote Post
Dopler
сообщение Sep 23 2011, 12:42
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



Я просто вызываю функцию
AppMain();
Которая объявлена таким образом
void(*AppMain)(void) = ((void(*)(void))APP_FLASH_ADR);

где APP_FLASH_ADR - адрес приложения, в моем случае 0x80004000
Go to the top of the page
 
+Quote Post

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

 


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


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