Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Настройки в ИАРЕ
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
promelectronshchic
Здравствуйте, вот читаю справку на ИАР, так в ней написано, что есть возможность выбора кода : Normal(стандартный) or position-independent(позиционно-независимый) code...
Но описание этой опции нету, может кто-то подскажет значение этой опции?


Также, в опциях можно задавать тип выходного файла: executable(исполнимый) или library...То есть, library выбираем, если хотим создать библиотечный файл, если так то каким образом это происходит...не совсем понятно, можно же создать библиотечный файл при настройке executable(исполнимый)...
rezident
Различие в использовании адресации и переходов. Position-independed подразумевает относительную адресацию и переходы. Проблема может возникнуть там, где относительный переход ограничен особенностями архитектуры. Например, возможен относительный переход только +-127 слов. И если требуется более длинный переход, то компилятор вынужден генерить JMP уже на абсолютный адрес, а не RJMP относительно текущего. При этом весь смысл позиционно-независимого кода пропадает. Так что эту опцию нужно использовать разумно и осторожно.
promelectronshchic
Выходит лучше оставлять эту опцию Normal. Плюс Position-independed в том, что относительный переход занимает меньше тактов при выполнении команды rjmp-2 cycle, jmp -4(это у авр), быстродействие кода будет по высше)

jorikdima
Цитата(promelectronshchic @ Jan 18 2011, 17:52) *
Плюс Position-independed в том, что относительный переход занимает меньше тактов при выполнении команды rjmp-2 cycle, jmp -4(это у авр), быстродействие кода будет по высше)

Скорее в том, что можно этот код залить в любое место памяти и запустить оттуда. Код не привязан к адресам своего расположения.
promelectronshchic
Понятно, интересно...)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.