cpl 0 11 июня, 2009 Опубликовано 11 июня, 2009 · Жалоба Приветствую ! Пишу свой загрузчик для uc3a0512, загружаю файл по x-modemу использую avr32studio+gcc, уже умею загружать файл и прошивать во внутренею флеш расположение по памяти такое: ------------------------------------ 0х80000000: + 0 flash boot-загрузчик 0x80020000: + 128k flash program-то что прошил ------------------------------------ возникли вопросы: Как организовать переход на загруженную прошивку из загрузчика? Так понимаю что программу которую прошиваю загрузчиком нужно собирать со смещением 128к от начала как это можно сделать ? Можно ли поместить подпрограму перепрошивки во внутреннею RAM и оттуда запустить ? :smile3046: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
altlogic 0 13 июня, 2009 Опубликовано 13 июня, 2009 · Жалоба cpl, это copy-past:) Скажите пожалуйста, а что значит "загружаю файл по x-modemу"? Каким аппаратным средством вы загружаете прошивку? Переход на программу я думаю делается обыкновенным джампом на адрес "0x80020000: + 128k flash". "Можно ли поместить подпрограму перепрошивки во внутреннею RAM и оттуда запустить ?" - вопрос теоретический - какой архитектуры процессор - гарвардской или фон-неймановской Вам карты в руки, проверяйте на практике Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cpl 0 29 августа, 2009 Опубликовано 29 августа, 2009 · Жалоба cpl, это copy-past:) Скажите пожалуйста, а что значит "загружаю файл по x-modemу"? Каким аппаратным средством вы загружаете прошивку? Переход на программу я думаю делается обыкновенным джампом на адрес "0x80020000: + 128k flash". "Можно ли поместить подпрограму перепрошивки во внутреннею RAM и оттуда запустить ?" - вопрос теоретический - какой архитектуры процессор - гарвардской или фон-неймановской Вам карты в руки, проверяйте на практике загружаю через уарт, переход сделал как вызов функции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
boeing1970 0 8 сентября, 2011 Опубликовано 8 сентября, 2011 · Жалоба Объясните, пожалуйста, как на "С" организовать переход на адрес 0x80020000. Там на ассемблере переходы только относительно PC, а мне нужно прыгнуть на абсолютный адрес. Я писал оператор: asm ("br 0x8002000"); , но компилятор ругался. На Меге-16 все получалось: там было так: asm("jmp 0"); либо asm("jmp 0x7000"); и все проходило, пог прыгнуть из загрузчика на пользовательскую программу, а мог назад. Подскажите, что нужно написать в программе на С для avr32uc3b0..., чтобы уйти на пользовательскую программу (загрузчик решил писать сам, потому что хотелось бы, чтобы драйвер для загрузчика и пользовательской программы был один и тот же - свой, а не фирменный) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dopler 0 23 сентября, 2011 Опубликовано 23 сентября, 2011 · Жалоба Я просто вызываю функцию AppMain(); Которая объявлена таким образом void(*AppMain)(void) = ((void(*)(void))APP_FLASH_ADR); где APP_FLASH_ADR - адрес приложения, в моем случае 0x80004000 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться