Главная » Просмотр файлов » GCC - The Complete Reference

GCC - The Complete Reference (537669), страница 70

Файл №537669 GCC - The Complete Reference (GCC - The Complete Reference) 70 страницаGCC - The Complete Reference (537669) страница 702015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 70)

При использовании системных операций с плавающей точкой программы, как правило, имеют меньший размер и выполняются быстрее. Для создания библиотеки выполните команду атаке, и, затем, команду ваЬе 1пвва11, Язык сценариев компоновщика Ы Управление компоновщиком О1ЧП 1б осуществляется с помощью особых скриптов. Если сценарий отдельно не указан, то будет использоваться тот сценарий, который был встроен в 16 при его установке. Существует возможность запускать собственный сценарий, это показано в следующем примере. Здесь применяется сценарий врх1д.

11пк для компоновки выполнимого загрузочного модуля с именем врх1д: $ 1тт -Т врхгд.11пи всагс.о 1оор.о ЬквРг.о -о вРх1д Опция -т указывает имя файла сценария. Опция -с — синоним опции -т. Основной причиной использования специального сценария является схема адресации. Как правило, компоновщик (Впкег) вырабатывает выполнимый файл с настраиваемыми адресами, которые устанавливаются каждый раз при загрузке модуля Глава (7.

Встраиваемые системы 3 1 3 в память. Каждый раздел описывается двумя адресами (во многих случаях они имеют одинаковое значение): первый из них — виртуальный адрес памяти (УМА), предназначенный для внутреннего использования при запуске модуля; а второй представляет собой загружаемый адрес памяти ((.МА), указывающий расположение памяти, куда должен загружаться раздел. В случае встраиваемого модуля все ссылки разрешаются компоновшиком в абсолютные адреса, поэтому все адресные ссылки являются полностью разрешимыми и неперемешаемыми.

Описанный процесс определения адреса модуля называется его размещением ()осайпй). Некоторые системы имеют специальную утилиту, преобразуюшую вырабатываемый компоновшиком перемешаемый код в модуль с абсолютной адресацией, но компоновщик ОСС имеет собственную встроенную возможность такого преобразования. Компоновщик считывает выработанные компилятором объектные файлы и объединяет их в новый объектный файл (который также называется выполнимым файлом). Этот объектный файл имеет разделы (секции). Каждый раздел имеет имя и размер. Компоновшик объединяет разделы с одинаковыми именами в один раздел.

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

Пример сценария компоновщика йв 1 Следующий пример можно использовать для получения скомпонованного объектного файла. Он берет разделы из различных входных объектных файлов, объединяет их и размещает по указанным адресам: ввсттоив ( . = ОхОЬООООот .вехе ю ( "(.еехе) ) = Охаоооооот .

с)ее а: ( * ( . е)аса) ) .Ъвв : ( *(.Ьвв) ) ) Ключевое слово Ядств(з)яв указывает, что ниже приводится карта распределения памяти для скомпонованного объектного модуля. Операторы между начальной и конечной скобками команды ВВСт~О>)В предназначены для назначения расположения в памяти генерируемого кода.

Точка представляет собой специальную переменную, которая содержит текущий здрес, также называемый счетчиком адреса (!оса(юп соил(ег), для помешения данных в выходной файл. Первый оператор в приведенном примере устанавливает те- 3 1 4 Часть 111. Внутренняя структура и окружение куший адрес равным абсолютному адресу ох0100000. Если бы он не был установлен, по умолчанию использовалось бы значение О.

После установки текущего адреса он будет автоматически увеличиваться при добавлении элементов в выходной файл. Оператор . алехе(... ) помешает начало раздела . сехт выходного файла по текущему адресу. В скобках указываются элементы, которые должны включаться в раздел . Сохе выходного файла. В приведенном примере раздел . Сехв будет содержать все разделы . сехс входных файлов. Здесь можно указать конкретные имена входных файлов, звездочка "*" соответствует всем именам.

После раздела .сехс значение счетчика адресов устанавливается равным ох08000000. Это адрес раздела . «)аСа выходного файла. Объединение всех разделов . ЙаСа входных файлов в один раздел . к>ава приводит к перемещению счетчика адресов. После вставки содержимого раздела . (така счетчик адресов будет указывать на следующий за разделом . е(аса адрес, куда и помещаются данные раздела .Ьвв. Пример сценария компоновщика й' 2 Следующий сценарий компоновщика указывает расположение разделов в форме, которая, возможно, будет вами использоваться лля создания объектного файла для встраиваемых систем. В сценарии указываются адреса для ОЗУ (ВАМ) и ПЗУ (КОМ): мвмоит ( гоа (гх> : овтстн = ожоооооооо, ъвнатн зозак аа ( с> : овзатм = охоозооооо, ьвнатн ззгк ) вист*она ( .сехг гоп : ( *(.гехг> .сага гаа : ( веагеовпаеа = *(.е>ага> впктоепаеа = игом .Ъвв в ( *(.Ъвв) ) неаръосаетоп = Веас>къосаСХоп = Ог80000000 ) Этот пример начинается с ключевого слова мнмонх, которое используется для присвоения имен блокам адресного пространства выходного кода.

Этот метод может использоваться для того, чтобы разбивать адресное пространство выходного кода на отдельные блоки и с помощью дополнительных инструкций вставлять данные от- Глава 17. Встраиваемые системы 3 15 дельных разделов в конкретные блоки памяти, В приведенном примере ключевое слово мемоех применяется для задания месторасположения и размера ОЗУ и ПЗУ и присвоения им имен для дальнейшего использования. Необязательные атрибуты памяти гх означают, что содержимое памяти может считываться и выполняться.

Атрибуты гмх означают, что содержимое доступно для считывания и записи и может выполняться Если опустить атрибуты, устанавливаются все разрешения. Определенные в сценарии области памяти позволяют использовать для установки адресов имена вместо чисел. Раздел . сехк выходного файла помещается в ПЗУ, поскольку его имя и расположение определяется как . Кехг гов, а раздел .

бага по- мешается в ОЗУ, поскольку он определяется как . Вака гав. Именованные разделы помещаются в том порядке„в котором они указаны, поэтому если адрес не указан, следующий раздел располагается после предыдущего. Например, раздел . ьва будет находиться непосредственно после раздела . с)ака. Такие символы, как яеагеОкпаеа и епг)окраса, включенные в сценарий, в процессе компоновки становятся глобальными переменными. Эти имена могут использоваться в программе для получения непосредственного доступа из программы к тому разделу памяти, в котором они установлены. Символ неарьосакзоп определен как адрес в ОЗУ, следующий непосредственно после раздела . ьвв, а для символа Вкас)къосактоп установлен абсолютный адрес Ох80000000. Некоторые другие команды сценариев компоновщика Ы Команда остин Ровм)кт очень важна для получения выходного выполняемого модуля в такой форме, которая позволяет загружать его в вашей системе.

Например, следующая команда сформирует выходной объект в шестнадцатеричном формате процессора 1п<е1; ОПТРПТ РОВМАТ<ГТЬех") Для этой команды доступны и описатели двоичных файлов (ВНЭ), в частности "Ьтпагу", "ТЬех" (для шестнадцатеричного формата )п<е!), "вгес" (для Б-записей), "еокк-аь" (для ЯН-2) и "сог1-вов)к" (для СР(332) (и это не полный список).

Использование в сценарии команды ОПТРПТ Р<звм)кт аналогично использованию команды --огогвак командной строки комгюновшика, которая имеет тот же набор возможных описателей двоичных файлов. Команду т)яРВТ можно использовать для указания списка библиотек и/или объектных файлов, которые вы хотите включить в каждую ссылку. Например, в следующем примере в ссылки будут включаться две библиотеки и один объектный файл: тнвцт<зкье.а зкьд.а веагевое<.о) С помощью команды ОптРпт Р?ьенвме можно указать имя выходного файла, как зто показано в следующем примере: Оцтвпт Ртьяидия<ттоае)аъъе.оцк"); ава Выкв~ квмпиишра о сновное назначение компилятора заключается в выработке объектных файлов, библиотек, содержагцих объектные файл ы, и выполняемых программ. Кроме того, компилятор можно использовать для получения других выходных результатов. Хотя это требуется и очень редко, тем не менее, компилятор может оказаться полезным в ситуациях, когда бывает трулно найти выход из возникшей проблемы.

Имеются опции, позволяющие определить "мнение" компилятора о синтаксисе программы, узнать, где он осушествляет поиск подпроцессов и библиотек, и получить листинг промежуточного кода, выработанный в результате обработки вашей программы. У вас есть возможность просмотреть полный список всех заголовочных файлов, включаемых в программу, и автоматически на основании исходного кода сформировать зависимости для компоновочного файла. Сведения о программе Компилятор формирует подробные внутренние таблицы, содержашие данные о компилируемой программе.

Существуют доступные опции командной строки, которые позволяют считать часть этих данных. У вас есть возможность не только изучить дерево синтаксического разделения, содержашее внутреннее представление вашего кода, но и получить полный список всех включаемых заголовочных файлов, узнать время компиляции и объем памяти, занимаемый каждым модулем программы. Для программ, написанных на языке С++, можно, кроме того, получить взаимоотношения определений классов. Дерево синтаксического разбора Компилятор выполняет синтаксический разбор программы (рагз1пй), преобразовывая ее во внутреннюю древовидную структуру.

Характеристики

Тип файла
DJVU-файл
Размер
6,08 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее