Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Директивы, которые допускают условную трансляцию↑ ⇐ ПредыдущаяСтр 28 из 28 Содержание книги
Поиск на нашем сайте
Директивы, которые определяют символы во время трансляции
Макроязык и макрокоманды Ассемблер поддерживает макроязык, который дает Вам возможность создать ваши собственные команды. Это особенно полезно, когда программа выполняет частные задачи несколько раз. Макроязык позволяет Вам: · Определить ваши собственные макрокоманды, и переопределить существующие макрокоманды. · Упростить длинный или сложный ассемблерный код. · Обратиться к макробиблиотекам, созданным архиватором. · Определить условные и повторяемые блоки в пределах макрокоманд. · Управлять строками в пределах макрокоманд. · Управлять листингом расширения макрокоманд. Программы часто содержат подпрограммы, которые выполняются несколько раз. Вместо повтора исходных инструкций подпрограммы, Вы можете определять подпрограмму как макрокоманду, а затем вызывать макрокоманду там, где Вы повторяли бы данную подпрограмму. Это упрощает и сокращает вашу исходную программу. Если Вы хотите вызвать макрокоманду несколько раз, но каждый раз с различными данными, Вы можете назначить параметры в пределах макрокоманды. Это дает Вам возможность обеспечивать различную информацию макрокоманде каждый раз, когда Вы ее вызываете. Макроязык поддерживает специальный символ, называемый символом замены, который используется для параметров макрокоманды. Использование макрокоманды - процесс из 3 шагов. Шаг 1: Определение макрокоманды Вы должны определить макрокоманды прежде, чем Вы можете использовать их в вашей программе. Имеются два метода для определения макрокоманд: · Макрокоманды могут быть определены в начале исходного файла или в копируемом / включаемом файле. · Макрокоманды могут также быть определены в макробиблиотеке. Макробиблиотека является собранием файлов в формате архива, созданном архиватором. Каждый элемент архивного файла (макробиблиотеки) может содержать одно макроопределение, соответствующее имени этого элемента. Вы можете обратиться к макробиблиотеке, используя.mlib директиву. Шаг 2: Вызов макрокоманды После того, как Вы определили макрокоманду, вызовите ее, используя имя макрокоманды как мнемонику в тексте исходной программы. Это называется вызовом макрокоманды. Шаг 3: Расширение макрокоманды Ассемблер разворачивает ваши макрокоманды, когда исходная программа вызывает их. Во время расширения ассемблер передает переменные аргументы параметрам макрокоманды, заменяет инструкция макровызова определением макрокоманды, затем транслирует исходный код. По умолчанию, макрорасширения печатаются в файле листинга. Вы можете выключить распечатку расширения, используя директиву.mnolist. Для получения дополнительной информации, см. раздел 5.8, Использование директив для форматирования листинга. Когда ассемблер сталкивается с макроопределением, он размещает имя макрокоманды в таблице кодов операций (opcode table). Это переопределяет, любую предварительно определенную макрокоманду, библиотечный вход, директиву, или мнемонику команды, которые имеют то же самое имя, что и данная макрокоманда. Это позволяет Вам расширить функции директив и команд, а также добавить новые команды. Определение макрокоманд. Вы можете определять макрокоманду где-либо в вашей программе, но Вы должны определить ее прежде, чем Вы сможете ее использовать. Макрокоманды могут быть определены в начале исходного файла, или в копируемом/включаемом файле, или в макробиблиотеке. Макроопределения могут быть вложенными, и они могут вызывать другие макрокоманды, но все элементы макрокоманды должны быть определены в том же самом файле. Макроопределение - ряд исходных инструкций в следующем формате: имя макрокоманды. macro [параметр 1] [,..., параметр n] · Имя макрокоманды называет макрокоманду. Вы должны поместить имя в поле метки исходной инструкции. Только первые 128 знаков имени существенны. Ассемблер размещает макро-имя во внутренней таблице кодов операций, заменяя любую команду или прежнее макроопределение, имеющее то же самое имя. · Директива.macro идентифицирует исходную инструкцию, как первую строку макроопределения. Вы должны разместить.macro в поле кода операции. · Параметр 1,…, параметр n - являются необязательными символами замены, которые появляются как операнды директивы.macro. Пример. Определение, вызов и расширение макрокоманды. Код определяет макрокоманду sadd4 с четырьмя параметрами r1, r2, r3, r4. 1 sadd4.macro r1,r2,r3,r4 2 sadd4 r1, r2,r3, r4 4 r1 = r1 + r2 + r3 + r4 5.endm Макровызов: следующий код вызывает макрокоманду sadd4 с четырьмя параметрами: 11 00000000 sadd4 A0,A1,A2,A3 Макробиблиотеки. Один из способов определения макрокоманд - создание макробиблиотеки. Макробиблиотека - собрание файлов, которые содержат макроопределения. Вы должны использовать архиватор, чтобы собрать эти файлы, или элементы, в одном файле (называемом архивом). Каждый элемент макробиблиотеки содержит одно макроопределение. Файлы в макробиблиотеке должны быть не оттранслированными исходными файлами. Имя макрокоманды и имя элемента должны быть одинаковыми, а расширение имени файла с макрокомандой должно быть.asm. Например:
Вы можете обращаться к макробиблиотеке, используя.mlib директиву ассемблера. Синтаксис:. mlib имя файла Когда ассемблер сталкивается с.mlib директивой, он открывает названную (в имени файла) библиотеку и создает таблицу содержания библиотеки. Ассемблер вводит имена индивидуальных элементов библиотеки в таблицы кодов операций в качестве библиотечных входов; это переопределяет любые существующие коды операции или макрокоманды, которые имеют то же самое имя. Если одна из этих макрокоманд вызывается, ассемблер извлекает вход библиотеки и загружает его в таблицу макрокоманд. Ассемблер разворачивает этот библиотечный вход таким же образом, как он разворачивает другие макрокоманды. Извлекаются только те макрокоманды, которые фактически вызываются из библиотеки, и они извлекаются только один раз. Рекурсивные и вложенные макрокоманды. Макроязык поддерживает рекурсивные и вложенные макровызовы. Это означает, что Вы можете вызывать другие макрокоманды внутри макроопределения. Вы можете вкладывать макрокоманды глубиной до 32 уровней. Когда Вы используете рекурсивные макрокоманды, Вы вызываете макрокоманду из ее собственного определения (макрокоманда вызывает саму себя). Когда Вы создаете рекурсивные или вложенные макрокоманды, Вы должны обратить особое внимание на аргументы, которые Вы передаете макропараметрам, потому что ассемблер использует динамический обзор параметров. Это означает, что вызываемая макрокоманда использует окружающую среду макрокоманды, из которой она вызвана. Следующие директивы могут использоваться с макрокомандами. Директивы.macro,.mexit,.endm и.var допустимы только с макрокомандами; оставшиеся директивы - общие директивы языка ассемблера. Создание макрокоманд:
Управление символами замены:
Условная трансляция:
Создание сообщений во время трансляции:
Форматирование листинга:
Компоновщик Компоновщик (Linker) создает исполняемые модули, объединяя объектные файлы COFF. Вызов компоновщика. Общий синтаксис для вызова компоновщика: LNK6X [опции] имя файла 1... имя файла n Опции - могут появляться где-нибудь в командной строке или в командном файле компоновщика. Имя файла 1…имя файла n - могут быть объектные файлы, командные файлы компоновщика, или архивные библиотеки. Заданное по умолчанию расширение для всех входных файлов -.obj; любое другое расширение должно быть явно определено. Компоновщик может определять, является ли входной файл объектным или файлом ASCII, который содержит команды компоновщика. Заданное по умолчанию имя файла вывода a.out, если только Вы не используете -o опцию, чтобы назвать выходной файл. Имеются два метода для вызова компоновщика: · Определить параметры и имена файлов в командной строке. Этот пример связывает два файла, file1.obj и file2.obj, и создают названный модуль вывода link.out. lnk6x file1.obj file2.obj -o link.out · Ввести команду LNK6X без имен файла или параметров; компоновщик запрашивает их: Command files: Командные файлы. Object files [.obj]: Объектные файлы. Output file []: Выходной файл. Options: Опции. Для командных файлов, введите один или большее количество имен командных файлов компоновщика. Для объектных файлов, введите один или большее количество имен объектных файлов. Заданное по умолчанию расширение -.obj. Отделите имена файла пробелами или запятыми; если последний знак - запятая, компоновщик предлагает дополнительную строку для имен объектных файлов. Выходной файл - имя выходного модуля компоновщика. Это имя отменяет любые опции –o, которые Вы вводите. Если нет параметра -o, и Вы не отвечаете на этот запрос, компоновщик создает объектный файл со значением по умолчанию - a.out. Опции (параметры) - для дополнительных параметров, хотя Вы можете также ввести их в командный файл. Введите их с дефисами, так, как если бы Вы были в командной строке. Утилиты Архиватор Архиватор позволяет Вам объединять несколько индивидуальных файлов в один файл архива. Например, Вы можете собрать несколько макрокоманд в макробиблиотеку. Ассемблер ищет библиотеку и использует ее элементы, которые вызываются как макрокоманды исходным файлом. Вы можете также использовать архиватор, чтобы собрать группу объектных файлов в библиотеку объектных модулей. Компоновщик включает в библиотеку элементы, которые решают внешние ссылки в течение компоновки. Архиватор позволяет Вам изменить библиотеку, удаляя, заменяя, извлекая, или добавляя элементы. Вы можете формировать библиотеки из любого типа файлов. И ассемблер и компоновщик принимают архивные библиотеки в качестве входа; ассемблер может использовать библиотеки, которые содержат индивидуальные исходные файлы, а компоновщик может использовать библиотеки, которые содержат отдельные объектные файлы. Одно из наиболее полезных приложений архиватора - построение библиотек из объектных модулей. Например, Вы можете записать несколько арифметических подпрограмм, оттранслировать их и использовать архиватор, чтобы собрать объектные файлы в одну логическую группу. Вы можете тогда определить библиотеку объектных модулей как вход компоновщика. Компоновщик ищет эту библиотеку и включает те ее элементы, которые решают внешние ссылки. Вы можете также использовать архиватор, чтобы формировать макробиблиотеки. Вы можете создавать несколько исходные файлы, каждый из которых содержит одиночную макрокоманду, и использовать архиватор, чтобы собрать эти макрокоманды в одну функциональную группу. Вы можете использовать директиву.mlib в течение трансляции, чтобы определить, какую макробиблиотеку нужно искать для макрокоманд, которые Вы вызываете. Чтобы вызывать архиватор, введите: AR6X[-]команда [параметры] имя библиотеки [имя файла 1... имя файла n] · [-]Команда - сообщает архиватору, как управлять существующими элементами библиотеки и любыми файлами с указанными именами. Перед командой может быть необязательный дефис. Вы должны использовать одну из следующих команд, когда Вы вызываете архиватор, но Вы можете использовать только одну команду в обращении к архиватору. Команды архиватора следующие: · @ Использует содержание указанного файла вместо ввода в командной строке. Вы можете использовать эту команду, чтобы избежать ограничения на длину командной строки, наложенную операционной системой компьютера. Используйте (;) в начале строки в командном файле, чтобы включить комментарии. · a Прибавляет указанные файлы к содержимому библиотеки. Эта команда не заменяет существующий элемент, который имеет то же самое имя, как добавленный файл; она просто добавляет новые элементы в конец архива. · d Удаляет указанные элементы из библиотеки. · r Заменяет указанные элементы библиотеки. Если Вы не указываете имена файлов, архиватор заменяет элементы библиотеки файлами с тем же самым именем из текущего каталога. Если указанный файл не найден в библиотеке, · архиватор добавляет его, вместо замены. · t Печатает оглавление библиотеки. Если Вы определяете имена файлов, только эти файлы печатаются. Если Вы не определяете никаких имен, архиватор перечисляет все элементы указанной библиотеки. · x Извлекает указанные файлы. Если Вы не определяете имена элементов, архиватор извлекает все элементы библиотеки. Когда архиватор извлекает элемент, он просто копирует этот элемент в текущий каталог; он не удаляет его из библиотеки. Параметры. В дополнение к одной из команд, Вы можете определять параметры. Чтобы использовать параметры, объедините их с командой; например, чтобы использовать команду a и опцию s, введите –as или as. Дефис - необязательный только для параметров архиватора. Это - параметры архиватора: · -q (тишина). Подавляет сообщения о состоянии и заголовок. · -s Печатает список глобальных символов, которые определены в библиотеке. Этот параметр допустим только с командами a, r и d. · -u Заменяет библиотечные элементы только, если замена имеет более позднюю дату модификации. Вы должны использовать команду r с -u опцией, чтобы определить, какие элементы заменять. · -v (подробный). Обеспечивает описание “файла за файлом” при создании новой библиотеки из старой библиотеки и ее элементы. Имя библиотеки. Называет библиотеку архивов, которая будет сформирована или изменена. Если Вы не определите расширение для файла библиотеки, архиватор использует заданное по умолчанию расширение.lib. Имена файлов. Называют индивидуальные файлы, которыми управляет команда. Эти файлы могут быть существующими элементами библиотеки или новыми файлами, которые будут добавлены в библиотеку. Когда Вы вводите имя файла, Вы должны ввести полное имя файла, включая расширение, если оно есть. Имя файла может иметь длину до 15 знаков; архиватор усекает имена файлов, которые длиннее, чем 15 знаков. Внимание: для библиотеки возможно (но не желательно) содержать несколько членов с тем же самым именем. Если Вы пытаетесь удалять, заменять, или извлекать элемент, чье имя совпадает с именем другого библиотечного элемента, архиватор удаляет, заменяет, или извлекает первый библиотечный элемент с этим именем. · Абсолютный листер Абсолютный листер - средство отладки, которое принимает скомпонованные объектные файлы в качестве входа, и создает файлы *.abs. Эти файлы *.abs можно оттранслировать, чтобы получить листинг, который показывает абсолютные адреса объектного кода. Вручную этот процесс требует длительного времени, однако абсолютный листер делает все автоматически. Рисунок иллюстрирует шаги, требуемые, чтобы произвести абсолютный листинг. Синтаксис вызова абсолютного листера следующий: ABS6X [-опции] входной файл ABS6X - команда вызова абсолютного листера Опции - указывают опции, которые Вы хотите использовать. Они не чувствительны к регистру и могут появляться где-нибудь в командной строке. Предшествуйте каждую опцию дефисом (-). Возможны следующие опции: · -e позволяет изменить заданное по умолчанию расширение для файлов: · -ea [.] расширение для ассемблерных файлов (по умолчанию.asm). · -ec [.] расширение для файлов на C (по умолчанию.c). · -eh [.] расширение для файлов заголовка C (по умолчанию.h). Точка в расширении и пробел между опцией и расширением - необязательны. · -q подавляет заголовок и всю информацию процесса работы. Входной файл - именует скомпонованный объектный файл. Если Вы опускаете расширение имени входного файла, абсолютный листер считает, что входной файл имеет расширение.out. Если Вы не даете имя входного файла, абсолютный листер запрашивает его у Вас. Абсолютный листер создает выходной файл для каждого входного файла, который был скомпонован. Эти файлы имеют то же имя, что и входные файлы, и расширение.abs. Файлы заголовка, однако, не создают соответствующий.abs файл. Транслируйте эти файлы с опцией ассемблера –a, как показано ниже, чтобы получить абсолютный листинг: asm6x -a имя.abs · Листер перекрестных ссылок Листер перекрестных ссылок TMS320C6X - средство отладки. Эта утилита принимает в качестве входа скомпонованные объектные файлы и производит листинг перекрестных ссылок на выходе. Эта распечатка показывает символы, их определения и ссылки на них в скомпонованных объектных файлах. Рисунок иллюстрирует шаги, требуемые, чтобы произвести распечатку перекрестных ссылок. Чтобы использовать утилиту перекрестной ссылки, файл должен быть собран с правильными параметрами и затем скомпонован в исполняемый файл. Транслируйте файлы ассемблера с -x опцией. Эта опция создает распечатку перекрестной ссылки и прибавляет информацию перекрестной ссылки к объектному файлу. По умолчанию ассемблер делает перекрестные ссылки только для глобальных символов, но если используется -s опция при вызове ассемблера, то также добавляются локальные символы. Скомпонуйте объектные файлы, чтобы получить выполняемый объектный файл. Чтобы вызвать листер перекрестных ссылок, введите следующее: XREF6X [опции] [имя входного файла [имя файла вывода]] XREF6X - команда, которая вызывает утилиту перекрестной ссылки. Опции идентифицируют параметры листера перекрестных ссылок, которые Вы хотите использовать. Параметры не чувствительны к регистру и могут появляться где-либо в командной строке после команды. Предшествуйте каждую опцию дефисом (-). Эти опции следующие: · -l (нижний регистр L) определяет число строк в странице выходного файла. Формат -l опции: -l число, где число - десятичная константа. Например, -l30 устанавливает число строк в странице выходного файла = 30. Пробел между опцией и константой - необязательный. Значение по умолчанию 60 строк. · -q подавляет заголовок и всю информацию по работе (тихий запуск). Имя входного файла – скомпонованный объектный файл. Если Вы опускаете входное имя файла, утилита его запрашивает. Имя файла вывода – имя файла листинга перекрестных ссылок. Если Вы опускаете имя файла вывода, заданное по умолчанию имя файла - имя входного файла с расширением.xrf. 7.13.2. Утилита 16-ричного преобразования Ассемблер и компоновщик ЦСП 'C6x создают объектные файлы, которые находятся в формате общего объектного файла (COFF). COFF - двоичный формат объектного файла, который улучшает модульное программирование и обеспечивает мощные и гибкие методы для управления сегментами кода и памятью целевой системы. Большинство программаторов ПЗУ не принимает COFF объектные файлы в качестве входа. Утилита шестнадцатеричного преобразования конвертирует COFF объектный файл в один из нескольких стандартных шестнадцатеричных форматов ASCII, подходящих для загрузки в программаторы ПЗУ. Утилита также полезна в других приложениях, требующих шестнадцатеричное преобразование COFF объектного файла (например, при использовании программ отладчиков и загрузчиков). Утилита 16-ричного преобразования может создавать следующие форматы выходного файла: · ASCII-Hex (шестнадцатеричный), поддерживающий 16-разрядные адреса. · Расширенный Tektronix (Tektronix). · Intel MCS-86 (Intel). · Motorola Exorciser (Motorola-S), поддерживающий 16-разрядные адреса. · Texas Instruments SDSMAC (TI-Tagged), поддерживающий 16-разрядные адреса. Поддержка в MATLAB Введение В СКМ MATLAB обеспечена поддержка моделирования устройств, использующих ЦСП. С их помощью устанавливается связь Simulink и MATLAB с инструментами eXpressDSP, разработанными компанией TI для работы с встроенными в хост-компьютер платами. Имеются пакеты расширения: · Embedded Target for TI C2000 (tm) DSP – для работы с встроенными платами с ЦПОС серии C2000. · Embedded Target for TI C6000 (tm) DSP - для работы с встроенными платами с ЦПОС серии C6000. · Link for Code Composer Studio (tm) – для связи Simulink и MATLAB со средством разработки программ «Code Composer Studio» (CCS). Каждый пакет для работы с встроенными платами включает: · Обзор встроенных плат с ЦПОС данного типа. · Обзор библиотек подпрограмм для ЦПОС данного типа. · Библиотеку блоков для Simulink. В качестве примера рассмотрим ЦПОС серии С6000. Для этой серии поддерживаются следующие платы: · C6416 DSP Starter Kit from TI – стартовый набор (DSK) с ЦПОС C6416. · C6711 DSP Starter Kit from TI – DSK с ЦПОС C6711. · C6713 DSP Starter Kit from TI – DSK с ЦПОС C6713. · C6701 Evaluation Module from TI – отладочный модуль с ЦПОС C6701. От DSK отличается большими возможностями. · TMDX326040A Daughter Card for the C6711 DSK – дочерняя звуковая карта для DSK C6711. 8.2. Встроенные платы для ЦСП ‘C6x В Simulink поддерживаются блоки, сгруппированные по категориям в библиотеки. Для каждой библиотеки в правом поле отображаются входящие в нее блоки.
Библиотека C6000 DSP Core Support. Поддержка ядра ЦПОС C6000. Включает блоки:
Библиотека C6000 Target Preferences. Эти блоки можно использовать только при установленной на хост-компьютер платформе.
Библиотека C62x DSP Library.
Библиотека C6416 DSK Library.
Библиотека C64x DSP Library. Библиотека ЦПОС C64x. Включает блоки, аналогичные блокам, используемым в ЦПОС C62x. Библиотека C6701 EVM Board Support. Поддержка отладочного модуля с ЦПОС C6701.
Библиотека C6711 EVM Board Support. Поддержка отладочного модуля с ЦПОС C6711. Включает блоки, аналогичные блокам, используемым в модуле C6701 EVM. Библиотека C6713 EVM Board Support. Поддержка отладочного модуля с ЦПОС C6713. Включает блоки, аналогичные блокам, используемым в модуле C6701 EVM. Библиотека DM642 EVM Board Support. Поддержка отладочного модуля DM642.
Библиотека DSP/BIOS Library.
Библиотека Host Communication Library.
Библиотека RTDX Instrumentation.
Библиотека TMDX326040 Support. Поддержка дочерней звуковой карты TMDX326040.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 192; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.43.200 (0.016 с.) |