Мысловский Э.В. Цифровые сигнальные процесссоры (2003) (1264219), страница 5
Текст из файла (страница 5)
Существует множество методов тестированияпрограммы. Наиболее широко используемый метод тестирования - тестирование повариантамиспользования.Навходподаютсявсевозможные(разрешенныеизапрещенные) входные сигналы и проверяется корректность выходных данных. Помимотестирования программы необходимо выполнить ее профилирование, то есть измерениевремени выполнения программы и каждое ее части.Получение загрузочной программы.
Загрузочная программа создается спомощью средств, входящих в пакет разработки. После прошивки программы в памятьпроцессора рекомендуется повторить процесс тестирования.2.2 Лингвистическое обеспечениеДля программирования систем, построенных на основе цифровых сигнальныхпроцессоров, в основном применяются язык ассемблера и язык высокого уровня С.Языкиассемблераявляютсямашинно-ориентированнымиязыкамии,следовательно, для каждого типа процессоров существует свой язык.
Почти каждаякоманда ассемблера эквивалентна машинной команде. Используемые символическиеобозначения обычно отражают и содержательный смысл. В ассемблере допускаетсяоформление повторяющейся последовательности операндов в виде одной макрокоманды.Версииязыка,допускающиесозданиеподобныхконструкций,носятназваниемакроассемблера.При программировании на языке ассемблера программисту доступны все ресурсыконкретного процессора.
Эго позволяет программисту разрабатывать эффективныепрограммы. Проблемы, связанные с периферийными устройствами лучше решатьсредствами языка ассемблера. Однако программирование на ассемблере предполагаетзнание архитектуры процессора.Современные версии ассемблера имеют набор инструкций, облегчающихпостроение структурированных программ.Следует отметить, что знание языка ассемблера остается необходимым условиемполучения «хороших» программ.Практически для всех процессоров ЦПОС язык С является допустимым языкомпрограммирования. Достоинствами языка С являются:Переносимость.
Разработку программы можно выполнить на платформе28имеющей более широкие средства для разработки и отладки программы, например накомпьютерах, совместимых с PC/AT, после чего перенести ее на выбранную платформу.При использовании языка С программист, вообще говоря, не обязан знатьархитектуру процессора.Язык С позволяет делать ассемблерные вставки, для оптимизации мест,критичных к скорости выполнения.Для программирования процессоров построенных по архитектуре VLIWтребуется хорошее знание архитектуры процессора для написания пакетов инструкций,выполняющихся параллельно. Кодогенератор языка С генерирует оптимизированный код.Разработка программы на языке высокого уровня значительно сокращаетвремя разработки программы.Выбор тех или иных специализированных средств разработки зависит от типавыбранной элементной базы.Так, например, если используется ДСП фирмы Analog Devices, то и в качествеинструментального средства, как правило, выбирают VisualDSP.Основными инструментальными пакетами для ЦСП фирмы Texas Instrumentsявляются:•TexasInstrumentС/ASM.TIС-компилятор,которыйпозволяеткомпилировать программы с ассемблерными вставками.
Эта программа полностьюсовместима с ANSI-стандартом и предназначена для использования с одним сигнальнымпроцессором. Основная проблема с TI-компилятором состоит в том, что он не имеетудачно завершенного интерфейса между РС-машиной и ЦСП-системой. Например, он неимеет реализации stdio, и генерирует только объектный код, а не самозагружаемуюпоследовательность.•Tartan C/C++. Tartan Inc.- фирма, которая специализируется на ADA-компиляторах. Фирма работает с TI, обеспечивая С и C++ утилиты для ЦСП.
Как и вслучае с TI, компиляторы этой фирмы имеют некоторые ограничения в планесовместимости с host-платформами.•3D Parallel С. Это инструментальная среда фирмы 3L Ltd., котораяпроизводит системы для программирования с параллельной обработкой данных. Фирмаприобрела TI-компилятор и добавила много новых возможностей. Система включает всебя ядро, которое выполняется на каждом сигнальном процессоре и обеспечиваетполную планировку задач и управление параллельными процессами.
Ядро использует29прямой доступ к памяти через COM-порты для коммуникаций между процессорами.Пакет обеспечивает полный инструментарий stdio для всех ЦСП системы.Среди операционных систем, ориентированных на решение задач ЦОС, можноупомянуть Helios. Helios - это параллельная операционная система, которая выполняетсяна сигнальных процессорах. Она обеспечивает полное POSIX окружениедляинструментальных и запускаемых пользователем приложений. Имеется встроенный Скомпилятор и ассемблер, которые написаны специально для Helios. Главное отличие этогокомпилятора состоит в том, что он использует байтовую неявную адресацию с цикломчтение-модификация-запись.
Это дает возможность оптимального сохранения байтаданных в памяти, однако может незначительно снизить быстродействие систем, а такжесузить диапазон адресации DSP. Другие ОС, такие как Virtuoso и SPOX, которыедобавляют свои собственные возможности к TI-компилятору, позволяют реализоватьширокий спектр вычислений и обработки данных в реальном времени. Использованиебиблиотек функций обработки ускоряет и упрощает разработку приложений, обеспечиваялегкостьразвитияиподдержкипрограммногообеспечения.Возможностьдляпользователей оптимизировать свои приложения весьма затруднительна без знанийархитектуры системы и системы команд сигнального процессора.
Использование готовыхбиблиотек функций является решением проблемы, т.к. эти библиотеки написаныэкспертом и могут иметь возможности, как для расширения, так и сужения диапазонаприменения за счет малого количества используемых в них функций.Операционнаямногозадачнуюсистемаоперационнуюреальногосистему.времениДляSPOXпредставляетвзаимодействияссобойвиртуальнымиаппаратными измерительными средствами и host-ЭВМ используется набор драйверов,который может изменяться и дополняться разработчиком.
Принцип построения ОС модульный: ядро - отладчик - линкер - библиотеки, с тремя уровнями привилегий:1)обработка аппаратных прерываний,2)обработка программных прерываний,3)управляющие задачи с уровнем приоритета от 0 до 7.SPOX является масштабируемой системой, при необходимости, изменив в файлеконфигурации распределение задач по узлам разрабатываемой системы, можно легкоперейти от виртуального однопроцессорного режима к многопроцессорному. Одно изосновных преимуществ данной ОС - простота миграции между платформами. Например,для обеспечения обработки сигналов в реальном времени в системах на основе Win32существует специальная версия SPOX - IA-SPOX, представляющая собой набор30виртуальных драйверов VxD кольца 0 ОС Win32.
Прикладное программное обеспечениеможет быть создано с помощью любых средств разработки, а его взаимодействие с ядромбудет осуществляться посредством специального модуля WinSpox (IA-SPOX).Операционная система Virtuoso может поддерживать как однопроцессорные, таки многопроцессорные системы (в зависимости от версии). Она поддерживает два уровняобработки прерываний и имеет два ядра: наноядро и микроядро, которое обслуживаетпроцессы в режиме многозадачности. Модульность ОС обеспечивается за счетвозможности внедрения библиотек: ввода/вывода, графики, отладки, математическихфункций и т.п.
Данная ОС имеет практически такие же свойства, что и SPOX, ноподдерживает большее число популярных сигнальных процессоров и даже транспьютеры.Отладка прикладных программ позволяет избежать ошибок и сбоев в работесистемы. Tartan и Helios имеют собственные отладчики, предлагая интерфейс команднойстроки и отладчик высокого уровня. Tl-отладчик написан специально для DSP TI ииспользует JTAG-порт для доступа ко всем внутренним регистрам и периферийнымсхемам DSP. Он позволяет вести отладку на уровне исходного кода приложения ипроследить, как программа взаимодействует с аппаратными ресурсами.
Существуютверсии отладчика для DOS и Windows, поддерживающие системы только с однимпроцессором на системной шине, однако UNIX, OS/2 и Windows NT версии позволяютотлаживать мультипроцессорные системы в многооконном интерфейсе отладчика.Отладчик дает возможность устанавливать точки прерывания не только по командампроцессоров, но и по некоторым событиям в процессе вычислений. 3L предлагаетDebugger Support Kit, который очень полезен, поскольку позволяет отлаживать исходныйтекст одного процессора без видимости других процессоров или ядра системы. Этоявляется очень важной особенностью данного отладчика. Наиболее распространенным ипростым интерактивным отладчиком является Code Composer фирмы Go DSP Inc.,который позволяет также анализировать процесс обработки данных в системе иотображатьрезультатыввидесоответствующихдиаграмм.Даватькакие-либорекомендации по выбору программного обеспечения для DSP-систсм довольно трудно,здесь основным критерием являются особенности решаемой задачи.
Начальнымкомплектом средств для разработки собственных DSP-приложений может бытьследующий набор: ассемблер и отладчик, а также библиотеки математических функций иобработки сигналов. Данные средства включаются практически в любой наборинструментальных средств для ЦСП-систем начального уровня.31В настоящее время, все большее распространение для разработки программ ЦОСполучает язык C++. Он является более строго типизированным, чем язык С, и позволяетразрабатывать более сложные, эффективные и надежные программы в более короткиесроки, чем язык С.Вопросы для самоконтроля:1.Перечислите этапы жизненного цикла разработки программы.2.
Что включает базовый набор инструментальных средств для решения задачЦОС.3. Дайте характеристику операционным системам, ориентированным нарешение задач ЦОС.32ГЛАВА 3. Средства разработки программного обеспечения для семействацифровых сигнальных процессоров ADSP-21xxЗнакомиться с принципами разработки систем на базе ЦСП начнем с анализапростейших операций. Операции сложения и вычитания совсем просто выполняютсямикропроцессорами общего назначения за один или незначительное число командныхциклов.
Цифровое сложение подобно десятичному сложению. Приведенный на рис.3.1,пример показывает сложение «1» и «2». Десятичный результат равен «3».Умножение и деление являются более сложными операциями. Операцияцифрового умножения может состоять из ряда операций «сдвига» и «сложения». В нашемпримере показано умножение «2» на «4».