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

 
 
> Как установить стартовый аддресс компиляции в IAR?
Amper25
сообщение Jul 4 2007, 11:18
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 215
Регистрация: 10-04-07
Пользователь №: 26 929



Народ, помогите! help.gif

Каким образом установить адрес, куда будет компилится вся программа, написаная на IAR.
Тоесть все функции и main и остальные.

Мне надо чтобы вся программа располагалась с определенного адресса, на который я сделаю JUMP из
bootloader-a.
Или, еще лучше, если бы при компиляции генерировался адресно независимый код(то есть все jump-ы
были бы относительными а не абсолютными.)

Вообще, где нибудь существует список команд компилятора с описанием?


Система:
IAR v4.41 for ARM
AT91SAM9263
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Amper25
сообщение Jul 4 2007, 14:31
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 215
Регистрация: 10-04-07
Пользователь №: 26 929



Спасибо помогло.
Нашел такие установки:
-DROMSTART=08000
-DROMEND=FFFFF

Замена констант меняет аддресс по которому будет располагатся откомпилированный код.

Но вообщем то мне не совсем это нужно. Я хочу выбирать, в какую область памяти размещать функции.
То есть: Эту поместить в "ROM"(я имею ввиду область после REMAP), другие поместить в SDRAM,
какие-то поместить во встроенную RAM. Как это делать?
Очевидно изменение конфига линковщика ничего не даст.
Например я перед функцией ставлю __ramfunc, но компилятор все равно её размещает в области памяти ROMа.
Как с этим боротся? smile3009.gif

thanks

PS: Ну и конечно хотелось бы получать несколько файлов после компиляции - для разных областей памяти.

Сообщение отредактировал Amper25 - Jul 4 2007, 14:33
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Jul 4 2007, 15:49
Сообщение #3


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(Amper25 @ Jul 4 2007, 18:31) *
Я хочу выбирать, в какую область памяти размещать функции.
То есть: Эту поместить в "ROM"(я имею ввиду область после REMAP), другие поместить в SDRAM,
какие-то поместить во встроенную RAM. Как это делать?
Очевидно изменение конфига линковщика ничего не даст.
Например я перед функцией ставлю __ramfunc, но компилятор все равно её размещает в области памяти ROMа.
Как с этим боротся? smile3009.gif

Вам нужно пользоваться дириктивами компилятора section (или как то так, ИАРа нету под рукой). Нужную вункцию или переменную обрамляете дириктивой. Секции можно создавать свои и прописывать для них соответствующие адреса.

Конекретнее не могу, так как этим не пользуюсь почти и не помню, а компилятора под рукой нету
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 10:01
Рейтинг@Mail.ru


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