Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LK_MashZavYP_Akchurin_2011.pdf
Скачиваний:
216
Добавлен:
10.06.2015
Размер:
8.79 Mб
Скачать

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

9.3. Средства разработки ЦСП С6x

Для разработчиков устройств на базе ЦСП серии С6x предлагается широкий набор мощных средств разработки и отладки. Новая архитектура ЦСП данного семейства предполагает и новый подход к процессу разработки, который позволяют уменьшить время и стоимость создания проекта за счет переноса большей части работы на ПО средств разработки. Разработчику остается написать алгоритм на языке высокого уровня, а его реализация и оптимизация с использованием всех преимуществ архитектуры ЦСП С6x перекладывается на компилятор. Это снимает одну из основных трудностей при работе на ЦСП с длинным командным словом – распараллеливание алгоритма. Такой подход имеет ряд преимуществ:

Существенно сокращается срок разработки и качество получаемого продукта за счет сосредоточения именно на реализуемой задаче, а не на средствах ее реализации.

Повышается качество и оптимальность кода за счет того, что автоматический оптимизатор всегда помнит все особенности архитектуры ЦСП и использует их по максимуму. Время разработки сокращается и за счет существенного уменьшения времени отладки из-за отсутствия ошибок в коде низкого уровня, которые часто возникают по вине разработчика (что-то забыл или не учел).

Процесс реализации алгоритма на ЦСП С6x протекает в несколько стадий. Вначале разработчик пишет алгоритм на языке Си или на ассемблере, и компилятор переводит его программу в машинный код с использованием всех возможностей ЦСП, таких как конвейерная обработка и интеллектуальное нахождение параллелизма в исходной программе для использования возможностей параллельной обработки команд в ЦСП. После наступает этап оценки производительности кода программными средствами, что позволяет оценить достигнутые результаты и провести оптимизацию кода без обращения к аппаратному обеспечению. И только следующим шагом идет проверка на макете устройства или отладочном модуле. Программные средства, предназначенные для разработки программ для ЦСП С6x:

С-компилятор, ассемблер и компоновщик.

455

Отладчик.

Среда Code Composer Studio.

Высокоуровневый С-компилятор, ассемблер и компоновщик. Данные про-

граммные продукты представляют собой набор средств для компиляции кода языка С. Они специально ориентированы на реализацию оптимальных программ, созданных по алгоритмам ЦОС. Имеет широкий набор встроенных средств оптимизации, как общего плана, так и специализированных для ЦСП TMS320С6000. Является ANSI совместимым компилятором. В состав данного продукта входит ассемблерный оптимизатор - средство для перевода последовательного ассемблерного кода в параллельный, специфичный для ЦСП

TMS320С6000.

Отдадчик. Продукт позволяет производить проверку выполнения кода на персональном компьютере без ЦСП.

Code Composer Studio. Многомодульный программный продукт представляет собой мощную интегрированную отладочную среду для ЦСП С6x и других серий. Имеет развитый оконный интерфейс, встроенные средства редактирования, возможность дизассемблирования и вызова внешнего компилятора, расширенные средства визуализации данных. По оценкам изготовителей среда Code Composer Studio станет стандартом и останется, чуть ли не единственным продуктом для программирования ЦСП компании Texas Instruments Inc. по крайней мере, до 2020 года. В настоящее время это средство платное.

9.4. Ассемблер ЦСП С6x

Введение

Ассемблер преобразовывает (транслирует) исходные файлы ассемблера в объектные файлы в машинном коде. Эти файлы находятся в общем формате объектного файла (COFF). Исходные файлы могут содержать следующие элементы ассемблера:

Директивы Ассемблера.

Макро директивы.

Команды ассемблера.

Двухпроходовый ассемблер делает следующее:

Преобразует операторы исходника в объектный файл.

456

Создает листинг исходника (если требуется) и дает Вам возможность управлять им.

Позволяет Вам сегментировать код по разделам и устанавливает счетчик команд SPC в каждом разделе объектного кода.

Определяет глобальные символы и ссылки на них, создает перекрестные ссылки на листинг исходника (если требуется).

Допускает условное ассемблирование.

Допускает макросы, позволяя создавать макросы в исходнике или в библиотеке.

Вызвать ассемблер можно двумя способами:

Запустить ASM6X. Ассемблер запускается с опциями по умолчанию. В частности без опции –L, которая заставляет его формировать файл листинга.

В командной строке ОС ввести путь к файлу ASM6x, имя файла и опцию –L. Файл листинга будет сформирован, и допущенные ошибки можно увидеть.

457

В окне ассемблера нужно задать:

Source file - исходный файл ассемблера. Если Вы не даете расширение, ассемблер использует заданное по умолчанию расширение .asm.

Формат инструкций исходника

Исходник ассемблера ЦСП С6x состоит из инструкций, которые могут содержать директивы ассемблера, команды ассемблера, макро-директивы, и комментарии. Инструкция может содержать 7 упорядоченных полей (метка, признак параллельности ||, условие, мнемоника инструкции, спецификатор модуля, список операндов, и комментарий).

Примеры инструкций:

two .set

2

; Символ two = 2

Label:

MVK

two, A2 ; Запись значения two в регистр A2

.word

016h

; Инициализация слова значением 016h

Ассемблер читает до 200 знаков в строке. Любые знаки свыше 200 усекаются. Операционная часть инструкций (т.е. все, кроме комментариев) должна быть короче 200 знаков для правильной трансляции. Комментарии могут простираться за пределы 200 знаков, но усеченная часть не включается в файл листинга.

Следуйте этим рекомендациям:

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

Метки не обязательны, если они используется, они должны начаться в столбце 1.

458

Один (или больше) пробелов должно отделять каждое поле. Символы табуляции интерпретируются, как пробелы. Вы должны отделить список операндов от предшествующего поля пробелом.

Комментарии необязательны. Комментарии, которые начинаются в столбце 1, могут начинаться со звездочки или точки с запятой (* или ;), комментарии, которые начинаются в любом другом столбце должны начинаться с точки с запятой.

Если Вы используете условную команду, имя регистра, по содержимому которого выполняется команда, должно быть окружено квадратными скобками.

Спецификатор модуля необязательный. Если Вы не определяете функциональный блок, ассемблер назначает функциональный блок сам , основываясь на мнемоническом поле.

Мнемоника не может начинаться с 0 или 1, иначе это будет интерпретироваться, как метка.

Метки. Они необязательны для всех команд ассемблера и для большинства (но не всех) директив ассемблера. Когда используется, метка должна начаться в столбце 1 инструкции. Метка может содержать до 128 алфавитно-цифровых знаков (A-Z, a-z, 0-9, _, и $). Метки чувствительны к регистру, и первый знак не может быть числом. Метка может сопровождаться двоеточием (:).

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

Признак параллельности. Символы || указывают команды, которые выполняются параллельно с предыдущей командой. Вы можете иметь до восьми команд, выполняющихся параллельно. Следующий пример демонстрирует шесть команд (Inst1…Inst6), выполняющихся параллельно:

Inst1

||Inst2

||Inst3

||Inst4

||Inst5

||Inst6

Inst7

Условие. Квадратные скобки [] указывают условные команды. Команда выполняется на основании значения регистра в пределах скобок, допустимые имена регистров – A1, A2, B0, B1, B2. Команда выполняется, если значение регистра

459

отлично от нуля. Если перед именем регистра стоит восклицательный знак (!), то команда выполняется, если значение регистра = 0. Например:

[A1] ZERO A2 ; Если A1 не равен 0, обнулить A2

Мнемоника инструкции. Например, ADD, MVK.

Поле спецификатора модуля. Это необязательное поле, которое следует за мнемоническим полем. Поле спецификатора модуля начинается с точки (.), сопровождаемой спецификатором функционального блока. Вообще, одна команда может быть назначена каждому функциональному блоку в одном командном цикле. Имеется восемь функциональных блоков, по два каждого функционального типа:

.D1 и .D2 Данные/сложение/вычитание. Используются для формирования адресов памяти данных.

.L1 и .L2 АЛУ/сравнение/арифметика длинных данных. АЛУ означает арифметико-логическое устройство.

.M1 и .M2 Умножение.

.S1 и .S2 Сдвиг/АЛУ/переходы/битовые поля.

Имеются несколько способов использовать поле спецификатора модуля:

Вы можете определить конкретный функциональный блок (например, .D1).

Вы можете определить только функциональный тип (например, .M), и ассемблер назначит определенный модуль (например, .M2).

Если Вы не определяете функциональный блок, ассемблер назначает модуль, основываясь на мнемоническом поле.

Поле операнда. Оно следует за мнемоническим полем и содержит один или большее количество операндов. Поле операнда требуется не для всех команд или директив. Операнд состоит из следующих элементов: символы, константы выражения (комбинация констант и символов). Операнды друг от друга отделяются запятыми (никаких пробелов!).

Комментарий. Может начинаться в любом столбце и простирается до конца исходной строки. Комментарий может содержать любые знаки ASCII, включая пробелы. Комментарии печатаются в листинге программы ассемблера, но не влияют на процесс трансляции.

Исходная инструкция, которая содержит только комментарий, допустима. Такой комментарий – заголовок части кода. Если она начинается в столбце 1, то может начинаться с точки с запятой (;) или звездочки (*).

460

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]