Полная версия этой страницы:
Настройки в ИАРЕ
promelectronshchic
Jan 14 2011, 14:42
Здравствуйте, вот читаю справку на ИАР, так в ней написано, что есть возможность выбора кода : Normal(стандартный) or position-independent(позиционно-независимый) code...
Но описание этой опции нету, может кто-то подскажет значение этой опции?
Также, в опциях можно задавать тип выходного файла: executable(исполнимый) или library...То есть, library выбираем, если хотим создать библиотечный файл, если так то каким образом это происходит...не совсем понятно, можно же создать библиотечный файл при настройке executable(исполнимый)...
rezident
Jan 14 2011, 15:40
Различие в использовании адресации и переходов. Position-independed подразумевает относительную адресацию и переходы. Проблема может возникнуть там, где относительный переход ограничен особенностями архитектуры. Например, возможен относительный переход только +-127 слов. И если требуется более длинный переход, то компилятор вынужден генерить JMP уже на абсолютный адрес, а не RJMP относительно текущего. При этом весь смысл позиционно-независимого кода пропадает. Так что эту опцию нужно использовать разумно и осторожно.
promelectronshchic
Jan 18 2011, 14:52
Выходит лучше оставлять эту опцию Normal. Плюс Position-independed в том, что относительный переход занимает меньше тактов при выполнении команды rjmp-2 cycle, jmp -4(это у авр), быстродействие кода будет по высше)
jorikdima
Jan 18 2011, 16:18
Цитата(promelectronshchic @ Jan 18 2011, 17:52)

Плюс Position-independed в том, что относительный переход занимает меньше тактов при выполнении команды rjmp-2 cycle, jmp -4(это у авр), быстродействие кода будет по высше)
Скорее в том, что можно этот код залить в любое место памяти и запустить оттуда. Код не привязан к адресам своего расположения.
promelectronshchic
Jan 19 2011, 07:23
Понятно, интересно...)
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.