Перейти к содержанию
    

Исполнение из SDRAM

Кто делал загрузку из Flash в SDRAM и переход на исполнение при сохранении возможности отладки через JTAG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всю программу или только часть ?

А где проблемы ?

если можно взглянуть на пример

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если используешь компилятор ИАР, то у него есть директива __ramfunc, подробно расписанная в документации и даже с маленьким примером. Нужно только будет настроить *.xcl файл, указав там диапазоны памяти будущих сегментов. c_startup сам перенесет код из флешь в озу (в указанный сегмент).

Только описаны эти ф-ии должны быть в другом файле чем тот (те), где они вызываются. Это связано с тем, что при описании такой функции и ее вызова в одном файле компилятор передает ей упрпавление коротким переходом (2Мб который), но, как правило, функция будет находиться намного дальше и линкер будет ругаться нехорошими словами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если используешь компилятор ИАР, то у него есть директива __ramfunc, подробно расписанная в документации и даже с маленьким примером. Нужно только будет настроить *.xcl файл, указав там диапазоны памяти будущих сегментов. c_startup сам перенесет код из флешь в озу (в указанный сегмент).

Только описаны эти ф-ии должны быть в другом файле чем тот (те), где они вызываются. Это связано с тем, что при описании такой функции и ее вызова в одном файле компилятор передает ей упрпавление коротким переходом (2Мб который), но, как правило, функция будет находиться намного дальше и линкер будет ругаться нехорошими словами.

А примерчиком не кинешь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем доброго времени суток.

У меня есть вопрос из этой темы: а возможно сделать так, чтоб проц (САМ7) подгружал функцию из внешней флешки, заливал в ОЗУ и передавал управление на неё?

Зараннее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Количество способов зависит от компилятора.

В RealView можно сделать код позиционно независимым и запускать его откуда угодно.

Можно использовать возможнось линкера создавать оверлеи т.е. лежащие в памяти куски кода которые должны выполняться в другом месте, при этом их надо самому подгружать в то место где они должны выполняться.

Ну и экзотический способ, это сделать динамический линкер elf файлов в микроконтроллере. В демобордах от Sharp так сделано.

 

Всем доброго времени суток.

У меня есть вопрос из этой темы: а возможно сделать так, чтоб проц (САМ7) подгружал функцию из внешней флешки, заливал в ОЗУ и передавал управление на неё?

Зараннее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Количество способов зависит от компилятора.

В RealView можно сделать код позиционно независимым и запускать его откуда угодно.

Можно использовать возможнось линкера создавать оверлеи т.е. лежащие в памяти куски кода которые должны выполняться в другом месте, при этом их надо самому подгружать в то место где они должны выполняться.

Ну и экзотический способ, это сделать динамический линкер elf файлов в микроконтроллере. В демобордах от Sharp так сделано.

 

Всем доброго времени суток.

У меня есть вопрос из этой темы: а возможно сделать так, чтоб проц (САМ7) подгружал функцию из внешней флешки, заливал в ОЗУ и передавал управление на неё?

Зараннее спасибо.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...