скачать doc
1.2.2. Инструментальные средства разработки
и моделирования систем ЦОС
По аналогии со способами реализации систем ЦОС существуют аппаратные и программные инструментальные средства разработки и моделирования (отладки) систем ЦОС.
К аппаратным средствам отладки (см. рис. 1.2.2.1) относятся аппаратные эмуляторы и проверочные модули. Рассмотрим их все по порядку.
Аппаратные эмуляторы предназначены для отладки программного и аппаратного обеспечения процессоров в режиме реального времени. Они работают под управлением ведущего компьютера (хост-компьютера), оснащённого необходимым интерфейсом и программным обеспечением – отладчиками. Различают три группы эмуляторов:
Классификация средств разработки и отладки

Подключение эмулятора-приставки
(N – количество контактов процессора)

эмуляторы-приставки, замещающие в системе ЦОС отлаживаемый процессор;
внутрисхемные, или сканирующие, эмуляторы, позволяющие не изымать из системы отлаживаемый процессор;
внутрикристальные эмуляторы, работающие совместно с внутрисхемными эмуляторами и представляющие собой одно из устройств внутренней периферии процессора.
Проверочные модули предназначены для быстрой отладки программного обеспечения ЦПОС в реальном времени и исследований разрабатываемых алгоритмов и программ. Различают два типа проверочных модулей:
стартовые наборы;
отладочные модули.
Внутрисхемный эмулятор-приставка представляет собой плату, содержащую аппаратный имитатор отлаживаемого процессора и дополнительное устройство управления имитатором. Перед использованием эмулятора-приставки процессор извлекается из системы ЦОС и на его место подключается плата (см. рис. 1.2.2.2). Подключение платы к системе осуществляется с помощью гибкого кабеля, количество и назначение контактов которого идентично выводам замещаемого процессора.
Управление всем процессом отладки осуществляется с хост-компьютера, содержащего инсталлированный отладчик, и начинается с загрузки в эмулятор той программы, которую в дальнейшем будет выполнять процессор. Плата подключается к компьютеру через один из стандартных последовательных портов, в зависимости от образца эмулятора. На плату должно подаваться электропитание. Подобные эмуляторы обеспечивают выполнение трассировки программы в реальном времени.
Эмуляторы-приставки имеют свои недостатки:
высокая стоимость;
недостаточная надежность;
большое энергопотребление;
изменение электрических характеристик цепи, к которой подключается эмулятор, вследствие чего могут возникать ошибки синхронизации.
Внутрикристальная отладка осуществляется без извлечения процессора из системы ЦОС с целью непосредственного контроля за выполнением программы процессором на полной скорости без каких-либо ограничений. Средства внутрикристальной отладки обеспечивают прямой доступ к регистрам памяти и периферии процессора.
Для внутрикристальной отладки необходимо иметь (см. рис. 1.2.2.3):
внутрисхемный эмулятор, обеспечивающий связь между хост-компьютером и процессором;
внутрикристальный эмулятор, являющийся элементом внутренней периферии и содержащий логику отладки процессора.
Внутрисхемный эмулятор включает в себя плату-контроллер, кабель, буфер и переходную приставку. Эмулятор устанавливается между компьютером и процессором. Связь с компьютером обеспечивается установкой платы в слот ISA (или в слот PCI в новейших компьютерах), а связь с внутрикристальным эмулятором процессора осуществляется по специально организованному интерфейсу.
Подключение компьютера к последовательному отладочному порту процессора через внутрисхемный эмулятор делает доступным отладочные средства процессора. Часто этот метод называют сканирующей эмуляцией: внутрикристальная логика отладки контролирует функционирование кристалла и останавливает процессор при достижении точки останова, определяемой пользователем.
Принцип внутрикристальной отладки

Рис. 1.2.2.3.
Достоинствами внутрикристальной (сканирующей) эмуляции являются:
использование небольшого количества выводов (не более четырех) закрепленного канала на процессоре;
предоставление возможности пользователю выполнять разнообразные действия на процессоре без изъятия его из системы ЦОС, например: загружать программы; проверять и изменять содержимое регистров и памяти; устанавливать и удалять точки останова; проверять содержимое конвейера процессора после достижения точки останова и т. д.
поддержка максимальной производительности процессора;
снижение энергопотребления без изменения электрических характеристик системы.
Внутрикристальный эмулятор является отладочным средством, обеспечивающим быстрый и независимый доступ к внутренним регистрам, памяти и периферии процессора.
В состав внутрикристального эмулятора входят:
контроллер и последовательный интерфейс;
регистры точек останова и компараторы;
логика точек останова и трассировки;
регистры информации о конвейере;
буфер.
Проверочные модули, как было сказано ранее, включают в себя стартовые наборы и отладочные модули. Они представляют собой готовые платы, предназначенные для отладки программного обеспечения ЦПОС в реальном времени, исследований возможностей и характеристик разрабатываемых алгоритмов и программ, а также для обучения работе с ЦПОС.
Стартовые наборы предназначены для обучения работе с ЦПОС и разрабатываются для каждого процессора отдельно. Стартовый набор позволяет:
изучить характеристики и принцип работы того или иного процессора;
отладить не слишком сложные программы;
выполнить несложное макетирование;
проверить возможность применения процессора для использования его в конкретной задаче.
В состав стартового набора входят: плата, программное обеспечение и комплект документации. На плате устанавливаются: процессор, аудио- или другой кодек (в зависимости от назначения процессора), последовательные и параллельные порты и др. Стартовый набор подключается к компьютеру через последовательный порт.
Отладочные модули, разрабатываемые под конкретные процессоры и конструируемые в виде платы, предназначены для проверки в реальных условиях разработанного алгоритма, реализованного в виде программы на языке ассемблера соответствующего процессора.
Отладочный модуль позволяет:
произвести быструю отладку и оптимизацию алгоритма;
изготовить на базе платы фактически законченное устройство;
использовать установленную на плате периферию;
практически избавиться от стадии макетирования устройства и значительно сократить время и затраты на этапе изготовления прототипа устройства.
Плата устанавливается в компьютер с интерфейсом ISA (PCI). Обычно на плате устанавливаются:
целевой процессор;
разнообразная память данных/программ (асинхронная SRAM, синхронная динамическая SDRAM и др.);
тактовые генераторы и система синхронизации;
интерфейсы расширения памяти и периферии для подключения дополнительной памяти и другой периферии, установленных на дочерних платах;
хост-интерфейс;
разнообразный аудиоинтерфейс, включающий стереовходы микрофона и линейные стереовыходы;
разнообразная программируемая логика для управления платой;
встроенный внутрисхемный эмулятор;
система электропитания;
группа переключателей, обеспечивающих конфигурирование модуля независимо от компьютера;
интерфейс шины ISA (PCI) для подключения к компьютеру.
Кроме перечисленного оборудования, плата может содержать другие устройства и разъемы.
Рассмотрим теперь программные средства разработки и отладки систем ЦОС, которые приведены на рис. 1.2.2.1. Из них непосредственно используются в моделировании отладчики и симуляторы.
Симуляторы системы команд, или просто симуляторы, являются программами, имитирующими работу того или иного процессора только на уровне его команд. Симуляторы отображают:
команды программы, разработанной для процессора;
состояние регистров и результаты вычислений;
состояние памяти;
время выполнения команды в циклах процессора, а также другие характеристики и параметры результатов выполнения исследуемой программы.
Обычно перед испытанием на аппаратных средствах программа (или ее отдельные блоки) проверяется на симуляторе. Симуляторы являются ключевым инструментом для отладки и оптимизации программного продукта и предоставляют пользователю возможность как пошагового, так и автоматического выполнения программы, а также управлять содержимым регистров и памяти. Симуляторы разрабатываются для каждого образца процессора и могут существенно отличаться по своим характеристикам.
Основными показателями, отличающими симуляторы от других программных средств разработки, являются: точность, скорость, сложность, поддержка отладки и оптимизации, поддержка точек останова. Рассмотрим эти показатели.
Точность. С точки зрения процесса вычисления представляют интерес два рода точности: функциональная точность и точность синхронизации.
Функциональная точность отображает верность, с которой симулятор моделирует функциональные возможности процессора. Функциональная точность оценивается вероятностью, с которой некоторая последовательность команд, обрабатывающая определенный массив данных будет давать те же результаты на симуляторе, что и на самом процессоре. Функциональная точность симулятора несколько меньше, чем точность процессора. Неточности в симуляторах обнаруживаются в процессе их эксплуатации, о чем поставщики симуляторов сообщают своим пользователям.
Точность синхронизации характеризует ту достоверность, с какой симулятор моделирует временные соотношения между операциями внутри процессора. Дело в том, что некоторые команды выполняются процессором более чем за один командный цикл, поэтому такие команды могут затрачивать различное время для своего выполнения в зависимости от событий, происходящих в процессоре (например, блокировки прерывания или конфликт шин внутренней памяти). Добиться точного моделирования временных соотношений в симуляторе практически невозможно, поскольку, чем точнее воспроизводятся временные согласования, тем ниже скорость работы симулятора.
Скорость работы симулятора. Симуляторы обладают существенно более низкой скоростью, чем имитируемые процессоры, поэтому отладка сложных алгоритмов, таких как БПФ или линейное предсказание, на симуляторе может оказаться малоэффективной.
Сложность. Этот показатель характеризует возможность симулятора имитировать работу не только ядра процессора, но и периферии: внутрикристальных таймеров, портов и интерфейсов. Большинство современных симуляторов имитируют интерфейсы, что позволяет разработчику увеличивать функциональную точность симулятора путем имитации, например, многопроцессорных структур.
Поддержка отладки и оптимизации. Разработчик взаимодействует с симулятором через буферную программу, называемую отладчиком. Современные отладчики могут использоваться как с симулятором, так и с внутрисхемным эмулятором данного процессора. Возможности отладки и оптимизации определяются именно отладчиками.
Поддержка точек останова. Все симуляторы поддерживают точки останова – определенные пользователем условия, которые принуждают симулятор остановиться. Различают простые и сложные точки останова:
простой точкой останова называют определенную пользователем точку программы, при достижении которой симулятор должен остановиться;
сложной точкой останова называют точку, обусловленную каким-либо выражением; например, «остановить программу при обращении по адресу 250h» или «остановить программу после пятикратного выставления числа 20h на шину данных».
Рассмотрим отладчики. Отладчиком называют буферную программу, предоставляющую разработчику необходимый интерфейс и обеспечивающую функциональные возможности симулятора и внутрисхемного эмулятора. Современные отладчики характеризуются высокой производительностью, простотой использования. Они имеют разнообразный интерфейс:
символьно-ориентированный, работающий в режиме командной строки. Этот интерфейс обеспечивает текстовый обмен информацией в пределах одиночного окна. Такие интерфейсы могут создавать трудности при отладке сложных программ;
символьный, работающий в режиме окна. Экран делится на окна для отображения различных видов информации. Именно такой подход применяется в современных отладчиках;
графический, работающий в режиме окна. Данный интерфейс является наиболее гибким и удобным, обладает доступной разнообразной настройкой изображения на экране. Отладчики с подобными интерфейсами производятся фирмами Analog Devices, Texas Instruments, Motorola.
Обеспечение функциональных возможностей симуляторов и внутрисхемных эмуляторов достигается:
символьным отлаживанием, которое поддерживается всеми современными отладчиками; символьное отлаживание означает, что обращение к переменным происходит не с помощью указания их адресов, а путем использования их символьных имен. Символьное отлаживание является важным как для языка ассемблера, так и для программирования на языке высокого уровня;
отладкой на уровне исходного кода, которая означает возможность обращения с объектами программы путем ссылки непосредственно на исходный текст: в окне отображается исходный текст программы (на языке ассемблера или языке высокого уровня) и высвечивается каждая строка, которую проходит симулятор в пошаговом режиме;
отладкой данных при переходе от одной точки программы к другой с выбором форматов представления: двоичное, шестнадцатеричное, десятичное целое и др.; для этого предусматриваются окна наблюдения, отображающие содержимое регистров и памяти. Переменные в окнах наблюдения обновляются всякий раз после точки останова или после выполнения команды в пошаговом режиме;
профилированием, позволяющим выяснить, в каком месте или за счет каких областей (участков) программы неоптимально расходуется временной ресурс. Большинство приложений ЦОС весьма чувствительно ко времени, затрачиваемому на выполнение программы, при разработке которой как непосредственно на языке ассемблера, так и с использованием С-компиляторов далеко не всегда удается минимизировать время, затрачиваемое на выполнение программы. Профилирование может осуществляться как покомандно, так и позонно, по желанию пользователя. В случае покомандного профилирования отладчик предоставляет список выполненных команд и количество исполнений каждой команды либо во всей программе, либо в заданном блоке, который ограничивается начальным и конечным адресом. При позонном профилировании отладчик фиксирует время, в течение которого доступны различные зоны программы. Зоны представляют собой участки программы, выделяемые пользователем; это могут быть подпрограммы и различные функционально законченные блоки. Полученная при профилировании информация помогает пользователю принять решение об оптимизации программы с целью сокращения времени ее выполнения;
дизассемблированием – восстановлением программы на языке ассемблера по объектному коду; это дает возможность разработчику не только следить за ходом выполнения программы от команды к команде, но быстро корректировать обнаруживаемые ошибки без перезагрузки всей программы;
протоколированием команд; это свойство обеспечивает возможность создавать логический файл из некоторой последовательности команд: в протоколе записываются не только выполненные команды, но и результат на выводе отладчика; это означает, что при многократном повторении сеанса отладки с целью сокращения времени можно организовать выполнение команд из заранее созданного логического файла.
Большинство современных отладчиков поддерживает отлаживание как ассемблерных программ, так и программ, написанных на языке высокого уровня с использованием С-компиляторов.
Появление мощных процессоров вызвало необходимость в новых отладчиках, которые, в дополнение к рассмотренным ранее свойствам, предоставляли бы пользователю более широкие возможности и удобства с целью сокращения сроков разработки и отладки систем ЦОС. В связи с этим появилось новое поколение отладочных средств, получивших наименование «интегрированная среда отладки» [1].
В дипломном проекте используется интегрированная среда отладки VisualDSP IDE v. 3.0.1.1, отладчик VisualDSP Debug Application v. 4.0.2.0, симулятор ADSP-21xx Family Simulator 2.0.1.0, плата стартового набора ADDS-2189M-EZLITE, внутрисхемный эмулятор ADDS-218x EZ-ICE-2.5v.
1.3. Структурная схема системы моделирования
Как отмечалось выше, существует много способов отладки систем ЦОС. На рис. 1.3.1 приведена структурная схема разрабатываемой в данном дипломном проекте системы моделирования. Для анализа этой структурной схемы обратимся к рисунку 1.3.2 [3], на котором отражены этапы отладки системы ЦОС, которые в полной мере можно реализовать с помощью приведённой структурной схемы.
Первые два этапа: описание архитектуры и генерирование кода – производятся в интегрированной среде отладки, установленной на персональном компьютере, и не требуют дополнительных аппаратных средств. Построитель системы – описывает архитектуру отлаживаемой системы. Он определяет наличие и объем доступной внешней памяти ОЗУ/ПЗУ и отображенных в карте памяти портов ввода вывода, а также расположение памяти инструкций и данных, тип процессора. Файл архитектуры системы создаётся пользователем, в нём пользователь определяет параметры разрабатываемой системы. Файл-источник ассемблера также создаётся пользователем и реализует тот или иной алгоритм цифровой обработки. Этот файл может создаваться при помощи специализированного языка ассемблера или с использованием языка высокого уровня С. Файл-источник ассемблера поступает на ассемблирование, в результате которого создаётся объектный файл.
Структурная схема системы моделирования

Рис. 1.3.1.
Этапы создания системы ЦОС.

Рис. 1.3.2.
Линкер (редактор связей) соединяет отдельно ассемблированные модули, располагает данные и код программы по компонентам конструируемой системы, так, как это задается построителем системы. В результате получается исполняемый файл.
На этапе отладки программного обеспечения проверяется работоспособность созданной программы с помощью программы симулятора и платы стартового набора. При работе с симулятором также не требуется дополнительное аппаратное обеспечение. Поэтому в нём предусматривается возможность задания входных данных.
Симулятор позволяет просматривать содержимое регистров, память, отлаживать программу с использованием пошагового режима и точек останова. Далее программное обеспечение проверяется на специальной плате стартового набора, которой может быть достаточно для реализации несложных систем (на таких платах предусматривается место и выводы для подключения различных электронных устройств), в этом случае именно эта плата используется на этапе отладки системы. Плата стартового набора подключается непосредственно к компьютеру, с которого в её память загружается отлаживаемая программа.
На этапе отладки системы к разрабатываемой плате подключаются источник и приёмник сигналов и если необходимо другое необходимое оборудование, а сама она через эмулятор к компьютеру. Эмулятор позволяет проверить схему, синхронизацию и выполнение программы в реальном режиме времени. Он имеет оверлейную память, которая может быть использована вместо компонент памяти конкретной системы.
На конечном этапе программа разбиения транслирует вывод редактора связей и генерирует файл стандартного формата для программатора ППЗУ. В результате разработки плата ЦОС с записанной в ПЗУ программой работает в автономном режиме.
3.2 ПРИНЦИПИАЛЬНАЯ СХЕМА КОМПЛЕКСА
Блок-схема платы ADSP-2189M EZ-KIT Lite приведена на рис. 3.2 (внешний вид платы представлен на рис. 3.3). На нём показано расположение главных компонентов и соединителей. В приложении приведена принципиальная схема ADSP-2189M EZ-KIT Lite.
Рассмотрим составные части комплекса, опираясь на рис. 3.3 и принципиальную схему.
Цифровой процессор обработки сигналов ADSP-2189M является основным элементом комплекса и на принципиальной схеме имеет обозначение U1.
Flash память (U3) используется для хранения программы, которая может быть загружена в процессор. Объём Flash памяти 4Mx8 битов. Выбор источника начальной загрузки управляется сигналом

Кодер-декодер AD73322 (U4) в активизированном состоянии позволяет обращаться к аудио гнездам ввода и вывода. 3,5 мм стерео вход Microphone/Line_in (J1) используется для прохождения аудио сигнала линейного уровня или аудио сигнала от микрофона в плату, оно подключается к выводам LINE_IN_L и LINE_IN_R или к выводам MIC1 и MIC2 звукового стерео порта кодека, в зависимости от установки переходного устройства JP3, используются для конфигурирования входного гнезда J1 под линейный уровень или под ввод микрофона. Средний контакт в каждой группе из трёх контактов связан с одним из входных выводов кодер-декодера. Переходными устройствами можно подключить эти выводы к выходу усилителя аналогового сигнала от микрофона AD8058AR (U6) или


Рис. 3.3. Плата EZ-KIT Lite
к выходу входного фильтра линейного уровня. Выходное 3,5 мм стерео гнездо LINE (J2) подключается к левому (L) LINE_OUT и правому (R) LINE_OUT выводам кодека и используется для вывода линейного аудио сигнала из платы.
Схема имеет два генератора. Один частотой 37,5МГц (U2), подключённый к входу CLKIN процессора, другой частотой 16,384МГц (U5), подключённый к входу MCLK кодека.
Три соединителя порта расширения (P3, P4, P5) обеспечивают доступ к сигналам шины ADSP-2189M. Эти соединители можно использовать для управления с компьютера, вне режима отладки. Все прерывания, сигналы шины доступны через этот порт.
Схема имеет следующие индикаторы:
LED1 - зеленый светодиод. Горит, когда плата подключена к источнику питания.
LED2 - жёлтый светодиод. Горит, когда данные передаются через последовательный порт.
LED3 - жёлтый светодиод. Горит, когда данные принимаются через последовательный порт.
LED4 – жёлтый светодиод. Управляется выходом FL1 процессора. Состоянием этого индикатора можно управлять программным путём, записывая данные во внутренний регистр.
LED5 - красный светодиод. Горит при сбросе.
Индикаторы управляются четырьмя из шести триггерами Шмитта с инверсными выходами (U8). Остальные триггеры используются в составе схемы с кнопкой SW1.
Схема имеет следующие кнопки и тумблеры:
SW1 - кнопка команды прерывания. Нажатие этой кнопки приводит к выполнениюпрерывания процессора. После этого процессор запускает программу обработки прерывания
, если обработка прерывания разрешено. Выводы кнопки разъединяются с помощью электроники, для того чтобы предотвратить многократные прерывания из-за механического дребезга контакта.
SW2 - кнопка команды сброса. Нажатие этой кнопки приводит к аппаратному сбросу процессора и кодер-декодера, процесс сброса продолжается пока кнопка не отпущена. Здесь также предусмотрена защита от многократного срабатывания. Для формирования сигнала сброса используется диспетчер напряжения ADM708SAR (U9).
SW3 - четыре тумблера для выбора режима работы процессора.
Плата EZ-KIT Lite питается напряжением постоянного тока. К среднему контакту коннектора питания (P7) подключается +7,5VDC. Внешний кольцевой контакт подключается к GND. Для питания от сети 220В используется адаптер GlobTek, Inc, модель: GT-2-1089-1507-T3 (вход: 100-240V~50-60Hz; выход: +7,5V 2,0A). Для получения напряжений 2,5В, 3,3В и 5В используются регуляторы VR3, VR2 и VR1 соответственно.
Схема имеет следующие соединители и переключатели:
JP1 – два контакта. Если они соединены переходным устройством, то кодер-декодер непосредственно подключён к последовательному порту SPORT0 процессора, если не соединены, то кодер-декодер подключён косвенно.
JP2 – два контакта. Если они соединены переходным устройством, то кодер-декодер отключен, если не соединены, то – подключен.
JP4 и JP5 – по два контакта. С их помощью можно изменять усиление в линии от 47 до 400, когда переходные устройства установлены.
JP6 – два контакта. Если они соединены переходным устройством, то последовательный порт отключен, если не соединены, то последовательный порт подключен.
JP7 – два контакта. Соединяются переходным устройством для работы процессора в режиме D.
JP8 – три контакта. JP8 изменяет напряжение ввода-вывода для процессора. Для работы с напряжением 2,5В переходное устройство соединяет 2-ой и 3-ий контакты. Для работы с напряжением 3,3В переходное устройство соединяет 1-ый и 2-ой контакты.
P8 – разъём, состоящий из 9 контактов. Используется для соединения с компьютером, используя уровни сигнала и последовательные асинхронные протоколы RS-232. Этот разъём соединён с приёмопередатчиком U7.
Переходные устройства обозначены на принципиальной схеме как SJ1–SJ9.
Процессор ADSP-2189M может использоваться в нескольких режимах. В большинстве случаев установка режимов производится программным путём, но плата EZ-KIT Lite предусматривает возможность изменения режима с помощью специальных переключателей. Далее описываются состояния переключателя SW3, обеспечивающие тот или иной режим работы процессора.
Конфигурация 1 (рис. 3.4). Происходит загрузка первых 32 слов программной памяти из специальной байтовой памяти через порт прямого доступа к байтовой памяти (BDMA). Выполнение программы задерживается, пока все 32 слова не будут загружены. Режим процессора - полная память.
Конфигурация 2 (рис. 3.5). Никаких автоматических операций загрузки не производится. Выполнение программы начинается от внешней памяти. Режим процессора - полная память. Также может использоваться BDMA, но не автоматически.
Конфигурация 3 (рис. 3.6). Происходит загрузка первых 32 слов программной памяти из специальной байтовой памяти через порт прямого доступа к байтовой памяти (BDMA). Выполнение программы задерживается, пока все 32 слова не будут загружены. Режим процессора – хост (ведущий режим). Используется переключатель. (Требуются дополнительные аппаратные средства).

Рис. 3.4. Конфигурация 1

Рис. 3.5. Конфигурация 2

Рис. 3.6. Конфигурация 3
Конфигурация 4 (рис. 3.7). Используется внутренний прямой доступ к памяти (IDMA) чтобы загрузить любую внутреннюю память по выбору. Выполнение программы удерживается, пока загрузка не завершится. Режим процессора – хост. Используется переключатель.
Конфигурация 5 (рис. 3.8). Происходит загрузка первых 32 слов программной памяти из специальной байтовой памяти через порт прямого доступа к байтовой памяти (BDMA). Выполнение программы задерживается, пока все 32 слова не будут загружены. Режим процессора – хост. Используется переключатель. (Требуются дополнительные аппаратные средства).
Конфигурация 6 (рис. 3.9). Используется внутренний прямой доступ к памяти (IDMA) чтобы загрузить любую внутреннюю память по выбору. Выполнение программы удерживается, пока загрузка не завершится. Режим процессора – хост. Используется переключатель.
Конфигурации 1, 4 и 6 являются стандартными параметрами настройки. Использование этих параметров настройки упрощает проектирование и обеспечивает лучшее управление памятью.
Для соединения стартового набора с платой внутрисхемного эмулятора ADDS-218x EZ-ICE используется 14-и контактный коннектор (P6).
ADSP-2189M интегрирует поддержку эмуляции на чипе через интерфейс 14-и штырькового ICE порта. Этот интерфейс обеспечивает более простое подключение платы и использование эмулятора, чем у аналогичных устройств семейства ADSP-2100. Эмулятор EZ-ICE имеет малое влияние на работу платы. EZ-ICE выполняет следующие функции:
взаимодействие с платой;
возможность установки до 30 контрольных точек;
пошаговая работа или работа с полным быстродействием;
возможность просмотра и изменения содержимого регистров и памяти;
загрузка и выгрузка функций компьютером;
эмуляция команд загружаемых и исполняемых программ;
законченная трансляция и дизассемблирование команд;
отладка исходных файлов на языке С.
Конфигурация 4

Рис. 3.2.7.
Конфигурация 5

Рис. 3.2.8.
Конфигурация 6

Рис. 3.2.9.
Когда к плате подключается питание, срабатывает схема сброса и процессор находится в состоянии

Кодек AD73322 связан с процессором через последовательный порт SPORT0. Этот последовательный высокоскоростной синхронный порт обеспечивает передачу данных, сигналов управления и информации состояния между процессором и кодеком. Возможно отключить кодек, если последовательный порт необходим для другой цели. Когда переходное устройство (JP1) установлено, кодек заблокирован.
Последовательный порт SPORT1 процессора используется для связи с персональным компьютером через интерфейс RS-232 (P8). Выводы Flag In и Flag Out определяют передачу или приём данных. Программное обеспечение процессора эмулирует работу универсального асинхронного приемопередатчика (UART), чтобы обеспечить протокол асинхронной последовательной связи с нормированной скоростью 115 Кбит в секунду. [6]
Последовательная система эмуляции EZ-ICE, подключаемая к порту P6 (для правильной ориентации разъёма и коннектора используется вывод Key), обеспечивает современную эмуляцию и поддержку для цифровых сигнальных процессоров семейства 218x фирмы Analog Devices. Она обеспечивает управляемую среду для наблюдения, отладки и тестовых испытаний в целевой системе, соединяясь непосредственно с целевым процессором.
EZ-ICE отдельно подключается к источнику питания и персональному компьютеру.
EZ-ICE имеет два доступных пользователю выключателя. Первый выключатель – это утопленная кнопка аппаратного сброса. Второй выключатель – переключатель скольжения с 3 позициями. Используется, чтобы установить уровень напряжения соответствующий уровню напряжения целевого процессора: 2,5, 3,3 и 5,0В. При выборе того или иного уровня напряжения загорается соответствующий индикатор (см. рис. 3.2.10).
При подсоединении невключенного EZ-ICE к невключенной плате:
Подключить EZ-ICE к плате.
Подключить плату к источнику питания.
Подключить EZ-ICE к источнику питания.
При подсоединении включенного EZ-ICE к включенной плате:
Подключить «землю» EZ-ICE (TP1) (на коннекторе эмулятора) к «земле» целевого источника питания.
Подключить EZ-ICE к плате.
При разъединении включенного EZ-ICE и включенной платы:
Подключить «землю» EZ-ICE (TP1) к «земле» целевого источника питания.
Отключить EZ-ICE от платы.
Разъединить соединение «земля».
При разъединении невключенного EZ-ICE и невключенной платы необходимо просто отключить 14-и штырьковый коннектор EZ-ICE (см. рис. 3.2.11) от разъёма платы.
EZ-ICE связывается с хост-программой, выполняющейся в Windows через RS-232 совместимый последовательный порт. Можно использовать любой из последовательных портов компьютера (COM1 - COM4).
EZ-ICE имеет два состояния сброса и два операционных режима: аппаратный сброс, программный сброс, резервный режим и «прозрачный» режим. Каждое из этих состояний и режимов играет свою роль в отладке целевой системы.
Лицевая панель EZ-ICE

Рис. 3.2.10.
14-и штырьковый коннектор EZ-ICE

Рис. 3.2.11.
При аппаратном сбросе EZ-ICE (при нажатии кнопки сброса EZ-ICE или при подключении питания к EZ-ICE) плата EZ-ICE переходит в состояние аппаратного сброса. В этом состоянии плата EZ-ICE выполняет следующие действия:
отключает обработчик автобуферизации;
устанавливает скорость передачи - 9600 битов в секунду;
осуществляет переход к состоянию мягкого сброса.
После аппаратного сброса или программного сброса, использующего опцию RESET эмулятора, плата EZ-ICE переходит в состояние программного сброса. В этом состоянии плата EZ-ICE выполняет следующие действия:
сбрасывает плату EZ-ICE;
инициализирует внутреннее программируемое оборудование EZ-ICE;
осуществляет переход к резервному режиму.
После программного сброса эмулятор EZ-ICE находится в резервном режиме. Этот режим характеризуется быстрым миганием индикатора действия. Когда EZ-ICE находится в резервном режиме, его микроконтроллер ожидает:
передачи от VisualDSP через последовательный порт, что заставляет EZ-ICE входить в эмуляцию.
Или
допустимый низкий сигнал от процессора на выводе RESET или, что переводит плату EZ-ICE в «прозрачный» режим.
При запуске программы сообщение об этом через последовательный порт посылается к EZ-ICE. Плата EZ-ICE проверяет состояние системного флага состояния сброса, чтобы определить, была ли система только что инициализирована.
После первого ответа о подтверждении соединения, плата EZ-ICE в резервном режиме оценивает полученное сообщение. Если сообщение - часть последовательного кода, посланного VisualDSP, то плата EZ-ICE переходит в состояние эмуляции.
EZ-ICE в резервном режиме не выполняет никакого пользовательского кода на процессоре и не производит никакого допустимого чтения или записи памяти. Все пользовательские контрольные точки недопустимы, когда EZ-ICE входит в резервный режим.
После появления допустимого низкого сигнала от процессора на выводе

Если целевая система не отвечает на сброс и не устанавливает сигнал

После установления связи между платой EZ-ICE и VisualDSP, EZ-ICE начинает эмуляцию. Это означает, что процессор обрабатывает прерывание эмулятора. Когда процессор обрабатывает прерывание эмулятора:
происходит останов целевой системы;
целевые сигналыи
игнорируются;
прекращается выполнение пользовательского кода из внутренней памяти.
Если процессор столкнулся с недопустимым кодом операции, он останавливает свою работу. Когда это случается, эмулятор не способен связаться с процессором. Это происходит, если недопустимый код операции читается из несуществующего адреса памяти или не указаны спецификации при использовании внешней памяти.
Когда выполняются команды Step (пошаговый режим выполнения программы) или Run (режим реального времени выполнения программы) в VisualDSP, целевой процессор прекращает обслуживание прерывания эмулятора, чтобы выполнить целевую программу. Это также происходит при наличии сигналов


3.3. Программное обеспечение системы моделирования
Программы для системы моделирования создаются с помощью пакета программного обеспечения поддержки разработки (средств разработки) для систем на базе процессоров фирмы Analog Devices, который называется VisualDSP. Он обеспечивает проведение всех этапов разработки. В состав пакета входят:
интегрированная среда разработки (Integrated Development Environment - IDE) программного обеспечения VisualDSP IDE v. 3.0.1.1;
ассемблер (assembler) ADSP-21xx ELF Assembler (ADSP-218x) 2.0.4.0;
редактор связей или компоновщик (linker) ADI DSP Linker 2.3.3.1;
программы разделителя для программатора ППЗУ (PROM splitter) ADSP-2100 Family PROM Splitter 1.38;
отладчик (debugger) VisualDSP Debug Application v. 4.0.2.0;
загрузчик (loader) ADSP-218x Family PROM Loader;
C компилятор (compiler) cc218x v. 5.0.6;
программы моделирования или симулятор (simulator) ADSP-21xx Family Simulator 2.0.1.0;
вспомогательные утилиты;
библиотеки стандартных функций.
Процесс подготовки выполняемой программы (этапы написания программы и получения исполняемого кода) для системы при использовании языка ассемблера показан на рис. 3.3.1. На этом рисунке прямоугольниками обозначены системные программы, входящие в пакет программного обеспечения подготовки программ пользователя. Исходные программы (файлы) и файлы, получаемые в результате работы системных программ, соответствуют на рис. 3.3.1 овалам.
Ассемблер переводит программу, написанную на языке ассемблера, в объектный код. Часть программы на языке ассемблера называют модулем; модули, которые являются входными данными ассемблера, называются исходными модулями. Каждый исходный модуль должен содержаться в отдельном файле. Отдельно ассемблированные модули связываются в единую программу. Таким образом, исходная программа подвергается с помощью собственно ассемблера трансляции, в результате которой получается промежуточная объектная программа. В процессе трансляции ассемблер обнаруживает синтаксические ошибки – нарушения правил языка – и выдает листинг трансляции, содержащий исходную программу, коды команд, диагностическую информацию и сообщения об ошибках. При наличии ошибок необходимо вернуться к исходной программе для ее коррекции.
Возможно создание с помощью программы-библиотекаря библиотеки объектных модулей, которая может содержать типовой набор процедур: инициализация вектора прерываний, перемещение программ и данных и т. д.
Язык ассемблера допускает использование макрокоманд, которыми можно объявить повторяющуюся последовательность команд процессора. Описания макрокоманд можно включать в исходный текст программы.
На рис. 3.3.2 показан процесс получения объектного модуля. Ассемблер включает препроцессор, на вход которого подаются файлы инициализации данных, текст программы и включаемые файлы.
Процесс подготовки исполняемой программы

Рис. 3.3.1.
Подготовка объектного модуля

Рис. 3.3.2.
Объектные программы, полученные в результате трансляции, не привязаны к каким-либо определенным адресам ячеек в памяти (команды, константы и переменные объектной программы не привязаны к каким-либо конкретным адресам памяти), т. е. они являются перемещаемыми и могут выполняться при размещении в разных местах памяти. Редактор связей осуществляет процесс редактирования отдельно-ассемблированных модулей и генерирует исполняемый файл, путём связывания этих модулей. Он сканирует каждый ассемблированный модуль и разрешает обращения между модулями к глобальным и внешним символам, назначает определённые абсолютные адреса перемещаемых программ и фрагментов данных. При этом выходная выполняемая программа может быть получена в виде нескольких выходных секций (не обязательно совпадающих с входными), каждая из которых может быть независимо предназначена для размещения или выполнения в различных областях и типах памяти.
Процесс объединения модулей не является чисто механическим процессом соединения. Редактор связей производит объединение отдельных объектных модулей, которые транслировались независимо друг от друга. При этом возможно использование библиотеки объектных модулей. Во время объединения модулей проверяются и устанавливаются необходимые связи между ними через общие константы, переменные и адреса переходов (метки). Объединение модулей и секций производится в заданном формате
При объединении модулей в одну программу возникают взаимные обращения (ссылки) к символьным компонентам (переменные, константы, метки, адреса и т. д.), используемым в различных модулях. Именно межмодульные обращения объединяют различные модули в единую программу. Информация о возможных межмодульных обращениях вносится в каждый модуль при его написании с помощью директив ассемблера и сохраняется в объектной программе после трансляции. Конкретные численные значения символьных компонентов могут задаваться как при написании отдельных модулей, так и на этапе компоновки. Ассемблер и редактор связей имеют специальные директивы, позволяющие объединять модули с общими компонентами.
При компоновке возможно получение на выходе промежуточной перемещаемой программы, которую можно использовать в качестве одного из исходных модулей при следующих этапах компоновки. Редактор связей, помимо основной выполняемой программы, выдает файл (таблицу компоновки), показывающий результат компоновки: порядок следования и схему распределения исходных модулей по конкретным адресам, а также другую диагностическую информацию. Редактор связей размещает скомпонованную программу и данные в аппарате целевой системы, как указано в файле описания системы .ldf и может создать несколько загружаемых страниц исполняемых файлов для процессора с загружаемой памятью.
Основным выходом редактора связей является исполняемый файл .dxe (DSP executable file). Этот файл загружают в программу моделирования для отладки. После того, как программа полностью отлажена, применяют программу разбиения памяти для программатора ППЗУ.
Разделитель программ для записи в ППЗУ использует выходные данные редактора связей и генерирует файл для записи в ППЗУ в форматах различных промышленных стандартов. Программа разделителя программ может генерировать файлы для памяти программ, памяти данных или памяти начальной загрузки. Три файла создаются для памяти программ, чтобы организовать ППЗУ в трёхбайтовых словах, соответствующих 24-разрядным инструкциям. Два файла создаются для памяти данных, чтобы сгруппировать данные в двухбайтовые слова, и один файл байтового формата создаётся для памяти начальной загрузки. Программа разделения программ может генерировать файлы в форматах Motorola S или Intel Hex.
С помощью отладчика осуществляется запуск и отладка программ. Визуализация данных производимая встроенным графическим пакетом позволяет существенно поднять уровень гибкости отладки проекта. Эта форма графического представления данных позволяет программисту быстро оценить выполнение алгоритма. Поскольку сложность алгоритмов стремительно увеличивается, это свойство может существенно облегчить процесс создания высокопроизводительных приложений.
Загрузчик перемещает исполняемый код от внешнего источника до памяти программы при включении питания или при сбросе. Он может работать в нескольких режимах.
Значительную часть программ, реализуемых на ЦПОС, составляют сложные управляющие структуры. Эти составляющие программ занимают малую часть общего времени выполнения программы, однако требуют значительных усилий при их разработке. Поэтому такие части программ легче создавать на языке высокого уровня C. Как правило, исполняемая программа, полученная с использованием языка C, имеет больший объём и медленнее выполняется. Однако при этом, не сильно уступая программам, написанным на языке ассемблера.
Для облегчения процесса разработки систем цифровой обработки сигналов в состав пакета средств разработки включены библиотеки алгоритмов и подпрограмм, ориентированных на обработку сигналов. Подпрограммы, включенные в библиотеки, делятся на несколько различных функциональных групп:
БПФ;
фильтрация;
адаптивная фильтрация;
корреляция;
математика;
тригонометрия;
матричные вычисления. [1], [8]

Рис. 3.7. Конфигурация 4

Рис. 3.8. Конфигурация 5

Рис. 3.9. Конфигурация 6