Выдача сообщения о местоположении (ключ -p) — КиберПедия 

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Выдача сообщения о местоположении (ключ -p)

2022-10-05 19
Выдача сообщения о местоположении (ключ -p) 0.00 из 5.00 0 оценок
Заказать работу

Параметр -p носит чисто информационный характер. Она используется для нахождения местоположения вызываемого редактора. Часто возникает ситуация, когда пользователь не знает, откуда именно вызывается редактор. Известно только, что это один из каталогов, приведенных в списке общедоступных каталогов в файле autoexec.bat (PATH=...). В этой ситуации можно использовать ключ -p. Редактор, встретив в командной строке данный ключ выдаст на экран сообщение:

Полное имя редактора связей:...имя файла вместе с каталогом,

и завершает работу. Работа редактора завершится независимо от того, есть ли в командной строке другие параметры. Выходной файл не создается.

4.6.5 Задание выходного файла (ключ -o<имя_файла>)

Результатом работы редактора связей является выходной файл. Его имя определяется путем задания в командной строке ключа -o<имя файла>. Между ключом -о и именем файла не должно быть пробела. Под именем файла подразумевается полное имя, то есть полный путь к файлу. Если задано только имя, а путь опущен, файл будет создан в текущем каталоге. Если файл с таким именем в данном каталоге уже существовал, он будет замещен новым файлом без каких либо дополнительных предупреждений.

Если редактор связей не встречает в командной строке ключа, определяющего название выходного файла, то в качестве имени выходного файла используется имя первого файла из списка входных файлов. При этом, расширение нового файла будет зависеть от того, каков его тип:

Табл. 4‑4 Возможные расширения выходных файлов редактора связей.

Расширение Описание
.abs Для абсолютных исполняемых файлов.
.rel Для исполняемых перемещаемых файлов.
.elz Для объектных файлов.

 

В NMSDK для объектных файлов основным расширением является ".elf". Однако редактор связей выходному объектному файлу присваивает расширение ".elz". Это делается во избежание замещения старого (входного) объектного файла.

4.6.6 Командный файл (@<имя_файла>)

Командный файл является альтернативным способом задания параметров редактору связей. Когда в командной строке приходится перечислять большое количество ключей и имен файлов, часто возникает ситуация переполнения, так как длина командной строки ограничена 128-ю символами. Поэтому удобнее расположить все параметры в командном файле, а в качестве параметра командной стоки передать редактору связей его имя, предваренное символом @. Между знаком @ и именем командного файла не должно быть пробела. В этом случае вид командной строки заметно упростится. Она будет выглядеть примерно так:

linker @cmdfile.cmd

В командном файле все параметры редактора связей могут располагаться как на отдельных строках, так и по несколько на одной строке. Например, ни одна из приведенных ниже записей не будет ошибочной:

-r

-d2 -stack=128

test1.elf -oresfile.rel

test2.elf test3.elf

В командный файл удобно помещать константную часть командной строки, а остальные, часто изменяемые параметры задавать непосредственно в командной строке. Например, если в качестве входных редактору необходимо передать следующий набор параметров:

-a -stack=4 -heap=1024 -heap1=1024 -d4 main.elf test1a.elf test1b.elf rtl.lib,

и при этом проследить результат работы редактора для различных типов выходного файла и для разных алгоритмов удаления неиспользуемых секций. Работу с таким набором параметров можно организовать следующим образом:

· В командный файл myfile.cmd поместить все ключи, не изменяемые при тестировании. Тогда командный файл может выглядеть так:

-stack=4 -heap=1024 -heap1=1024

main.elf test1a.elf

test1b.elf rtl.lib

· Изменяемые параметры записывать в командной строке наряду с командным файлом. Тогда процесс запуска редактора связей сведется к следующему:

linker -a @myfile.cmd -d4

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

Типы выходного файла

Редактор связей работает с объектными файлами формата ELF, предназначенными для выполнения на процессорах серии 1879ВМ. В заголовке таких файлов расположено поле, определяющее тип инструментальной машины, для которой они были созданы. В данном случае, это поле имеет специальное значение, соответствующее процессору. При любых других значениях данного поля редактор выдаст соответствующую ошибку и прекратит работу.

Редактор связей порождает три типа выходных файлов:

· абсолютный исполняемый файл предназначен для выполнения на процессорах серии 1879ВМ. Назван абсолютным, потому что для каждой структуры, входящей в его состав известен абсолютный (точный) адрес расположения в памяти, доступной процессору. Его внутренние данные структурированы таким образом, чтобы максимально ускорить и упростить процесс загрузки в память вычислительного устройства. Файл разбит на специальные области, называемые сегментами, каждый из которых представляют собой дамп определенной области памяти вычислительного устройства. Загрузка такого файла сводится к копированию сегментов по адресам, заданным в их заголовках.

· исполняемый перемещаемый файл предназначен для выполнения на процессорах серии 1879ВМ. В отличие от предыдущего типа файла адреса загрузки его структур заранее неизвестны, и определяются лишь в момент загрузки (при наличии специальной программы, не входящей в NMSDK). Поэтому файл данного типа содержит таблицу символов и таблицы перемещений для тех секций, в которых встречаются ссылки на символы. Все символы из символьной таблицы должны быть определены. Это означает, что каждый символ должен содержать информацию о секции, в которой под него выделено место. Размещение файла данного типа в памяти вычислительного устройства осуществляется специальным загрузчиком, который должен назначать адреса размещения секций, вычислять адреса символов и разрешать все ссылки, хранящиеся в таблицах перемещения секций.

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

В процессе создания исполняемых файлов редактор связей по желанию пользователя может включать алгоритм удаления неиспользуемых секций (см. пункт 4.8.1.Удаление неиспользуемых секций и отладочной информации (ключ -d4). В режиме создания объектного файла такой алгоритм не предусмотрен, о чем выдается соответствующее предупреждение.

4.7.1 Создание абсолютного исполняемого файла (ключ -abs или -a)

Параметр -а указывает редактору связей на то, что выходным файлом должен быть абсолютный исполняемый файл. Данный ключ установлен по умолчанию, поэтому если редактор не встретит входного параметра, определяющего тип выходного файла, он создаст абсолютный файл. Абсолютный файл в обязательном порядке должен содержать точку входа. По умолчанию точка входа называется "start". Обычно она содержится в стартовом коде (startup code) и представляет собой глобальную метку. Пользователь может ввести свое имя точки входа (см. пункт 4.8.6 Определение имени точки входа (ключ -start=<имя_метки>).

Следующие примеры связывают воедино файлы file1.elf и file2.elf, и создают абсолютный исполняемый файл:

linker -abs file1.elf file2.elf -oresult.abs

linker -a file1.elf file2.elf -oresult.abs

linker file1.elf file2.elf -oresult.abs


Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.