|
Это означает, что при перемещении кода не нужно перенастраивать адреса. В большинстве случаев код для ARM сам по себе позиционно-независимый - все переходы в пределах 24 МБайт относительные. Но бывает, что компилятор помещает в код полный адрес. Если, например, используются указатели на функции. Например, если используются объекты с виртуальными функциями. У компиляторов бывает опция - генерировать позиционно независимый код. Кроме того, правильно настроив сегменты часто бывает возможно сделать так, чтобы линкер поместил код по одному адресу, но настроил его для исполнения по другому. При этом код не будет позиционно-независимым, но будет работать после копирования в нужное место.
E-mail: info@telesys.ru