Научная статья на тему 'Реализация алгоритмов цифровой обработки сигналов ЦОС в иср CCS'

Реализация алгоритмов цифровой обработки сигналов ЦОС в иср CCS Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
256
90
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гук Игорь

В данной статье показан пример разработки программного кода для ЦСП семейства TMS320C6000 в рамках интегрированной среды разработки (ИСР) Code Composer Studio (CCS).

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Реализация алгоритмов цифровой обработки сигналов ЦОС в иср CCS»

100 www.finestreet.ru компоненты ЦСП

Игорь ГУК

gii@scanti.ru

Реализация

алгоритмов ЦОС в ИСР CCS

В данной статье показан пример разработки программного кода для ЦСП семейства TMS320C6000 в рамках интегрированной среды разработки (ИСР) Code Composer Studio (CCS). Материал базируется на предыдущей статье, опубликованной в журнале «Компоненты и технологии» № 7 за этот год, и для успешного освоения излагаемых вопросов рекомендуется с ней ознакомиться.

Реализация любой системы ЦОС на базе ЦСП включает:

• Разработку и отладку программного кода на языке высокого уровня или ассемблере в соответствии с выбранным алгоритмом. Результатом является набор текстовых файлов с программным кодом, описывающим реализуемый алгоритм.

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

• Тестирование разработанного программного кода.

• Разработку платы для проектируемой системы ЦОС.

• Тестирование программного кода на разработанной плате.

Для выполнения всех вышеперечисленных этапов необходимо иметь комплекс программных и аппаратных средств проектирования систем ЦОС (программное обеспечение и средства аппаратной поддержки). Программное обеспечение (ПО) включает:

• текстовый редактор для написания программного кода;

• компилятор для трансляции файлов с кодом программы в бинарный файл;

• симулятор ЦСП для отладки кода в виртуальном режиме;

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

• отладчик для тестирования программы. Средства аппаратной поддержки (САП)

представляют собой:

• персональный компьютер (ПК) для реализации возможностей ПО;

• отладочный модуль для тестирования бинарного файла с кодом программы;

• программатор для переноса разработанного кода в память ЦОС;

• эмулятор для тестирования разработанной платы.

Для реализации систем ЦОС фирма ^ предлагает ряд технологических решений,

позволяющих существенно ускорить и облегчить процесс разработки:

• единый, интегрированный в каждый ЦСП фирмы TI отладочный интерфейс JTAG, позволяющий подключить несколько ЦСП к одному отладчику всего по 6 проводам и обеспечивающий высокую скорость обмена данными;

• технологию обмена данными в реальном времени — RTDX, базирующуюся на интерфейсе JTAG;

• библиотеку функций DSP/BIOS, использующую технологию RTDX и позволяющую

реализовать алгоритмы обмена данными в реальном времени;

• стандарт eXpresDSP, определяющий основные правила написания программного кода для реализации алгоритмов ЦОС на ЦСП, позволяющий упростить разработку программ и увеличить повторное использование кода.

Программная часть этих технологий воплотилась в интегрированной среде разработки CCS (Code Composer Studio), которая включает:

• текстовый редактор;

ЦСП компоненты

101

Рис. 2. Запуск утилит

• менеджер проектов;

• оптимизирующий компилятор;

• симулятор ЦСП;

• загрузчик программного кода в ЦСП;

• мультипроцессорный отладчик, оптимизированный для приложений ЦОС, который содержит уникальный набор средств анализа и отладки программ в реальном времени, базирующийся на RTDX и DSP/BIOS. Аппаратным элементом являются платы

двух типов:

• внутрисхемный эмулятор;

• отладочный модуль.

Внутрисхемный эмулятор представляет

модуль, устанавливаемый в слот PCI или подключаемый к персональному компьютеру при помощи порта USB или LPT, и кабель для подключения к отлаживаемой плате. Все ЦСП фирмы TI имеют единый интерфейс внутрисхемного эмулятора JTAG и работают с единым внутрисхемным эмулятором XDS-510 (или SDSP-510). Через отладочный интерфейс доступны как внутренние регистры процессора, так и вся память и периферия. Эмулятор позволяет:

• производить загрузку кода программы и данных во внутреннюю и внешнюю память;

• устанавливать любое количество точек остановки;

• производить контроль и модификацию содержимого памяти, регистров процессора и регистров периферийных устройств;

• проводить пошаговое выполнение программы;

• измерять время выполнения программы или ее частей;

• работать с несколькими ЦПОС. Подключение внутрисхемного эмулятора

абсолютно прозрачно для исполняемой программы и не оказывает на выполнение никакого влияния, при этом программа исполняется в реальном времени, без каких-либо задержек и ограничений по производительности. Такой подход радикально отличается от традиционного, при котором предполагается подключение на место процессора либо специальной микросхемы — прототипа, либо специального устройства — эмулятора ЦСП.

Отладочный модуль выполняется в виде отдельной платы, которая содержит:

• один из типов ЦПОС;

• внешнюю память;

• источник питания;

• JTAG контроллер;

• разъемы для подключения дочерних плат;

• разъемы подключения к ПК;

• дополнительные элементы, такие как АЦП/ ЦАП, контроллеры сети, аудио-, видеокодеки, адаптеры PCI, шины и т. д. Отладочный модуль может подключаться к ПК как через внутрисхемный эмулятор, так и напрямую через порты LPT или USB. Однако во втором случае обмен данными между ПК и отладочным модулем происходит значительно медленнее.

Ассортимент предлагаемых отладочных модулей очень широк: от плат начального уровня до специализированных устройств, позволяющих построить программно-аппаратные комплексы реализации алгоритмов обработки аудио и видеоданных, сетевые протоколы и т. д. На рис. 1 показаны возможные структуры программно-аппаратного комплекса.

Предлагаемые ПО и САП позволяют объединить весь процесс разработки систем ЦОС и выделить всего три этапа:

• первый — разработка и отладка программного кода с использованием ИСР CCS и одного из наиболее соответствующих поставленной задаче отладочных модулей;

• второй — разработка платы для проектируемой системы ЦОС;

• третий — отладка программного обеспечения на разработанной плате с использованием CCS и внутрисхемного эмулятора. Таким образом, для полноценной работы

с ЦСП фирмы TI необходимы только три компонента:

• один из отладочных модулей, в наибольшей степени пригодный для решения поставленной задачи;

• один наиболее подходящий по характеристикам внутрисхемный эмулятор;

• интегральная среда разработки (ИСР) — Code Composer Studio (CCS). Использование ПО и САП фирмы TI позволяет оценить разрабатываемую систему ЦОС и отработать ее решения на реальном ЦCП на самых ранних стадиях проектирования.

Более подробно ИСР CCS планируется рассмотреть в будущем. В данной статье приведены минимально необходимые знания по использованию ИСР. Возможности CCS показаны на примере создания программно-

го кода фильтра, разработка которого описана в предыдущей статье.

После инсталляции CCS при первом запуске программы вначале необходимо произвести настройку ИСР для работы с конкретным подключенным к ПК отладочным модулем. Если отладочный модуль подключен через порт LPT, то вначале необходимо запустить утилиту определения номера порта и режима его работы (рис. 2a). Результат работы показан на рис. 3.

Затем запускается утилита Setup Code Composer Studio. Это можно сделать через главное меню (рис. 2b) или нажав на соответствующую иконку на рабочем столе. Появится диалоговое окно Import Configuration (рис. 4). Вначале необходимо нажать кнопку Clear, это приведет к сбросу всех настроек CCS. Затем указывается семейство ЦСП (рис. 4a), способ подключения отладочного модуля к ПК (рис. 4b), взаимное расположение младшего и старшего байтов (рис. 4c). Тип подключения определяется следующим образом (рис. 1): DSK — подключение через порт LPT или USB, EMU — через внутрисхемный эмулятор, EVM — использование отладочного модуля, включаемого непосредственно в один из слотов ПК. Потом в окне Available Configurations выбирается тип отладочного модуля. Пример выбора типа отладочного модуля при подключении через порт LPT с учетом номера порта и режима его работы (EPP или SPP) показан на рис. 4d. Дальше необходимо нажать кнопку Import и завершить настройку нажатием кнопки Save and Quit. В результате появится окно запроса, где необходимо нажать кнопку подтверждения. Если настройка прошла успешно, будет запущена ИСР CCS (рис. 5). Процедура настройки ИСР показана на примере CCS версии 2. Для версии 3 основные этапы настройки сохраняются, но сам интерфейс (диалого-

a)

b)

102

компоненты

ЦСП

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

Рис. 6. Создание проекта

вое окно) отличается от приведенного на рис. 4. Если используется CCS, поставляемая с отладочной платой начального уровня (Starter KIT), данная процедура настройки отсутствует. Это обусловлено тем, что с отладочным комплектом Starter KIT поставляется модификация CCS, способная работать только с конкретной (входящей в данный комплект) отладочной платой.

Настройка производится только один раз и в дальнейшем запуск CCS осуществляется через меню «Пуск», или нажатием соответствующей иконки на рабочем столе.

После запуска CCS создается проект. Для этого необходимо в главном меню ИСР выбрать раздел Project, а в нем — пункт New (рис. 6).

Появится диалоговое окно, показанное на рис. 7. В нем задаются семейство ЦСП (рис. 7a), тип проекта (рис. 7b), размещение проекта на жестком диске (рис. 7c) и имя проекта (рис. 7d). Возможны два типа проектов — проект создания исполняемого файла (out) или проект создания библиотеки (lib). В примере рассматривается проект типа out.

Установив нужные параметры проекта, необходимо нажать кнопку подтверждения, и проект будет создан. В этом легко убедиться при помощи любого менеджера файлов: в указанном месте на жестком диске появится папка с именем проекта, где будет находиться конфигурационный файл с именем созданного проекта и расширением pjt.

Platee* Nome | дд

LoCAbWl |d \f»orclW.nniiJ\cciM00\t*«\

РічесІІи» |F»»MU№IMI З

T*B« |TMS320C620<

З

<Н*»ад

Готово ~| Отмен*

Рис. 7. Определение параметров проекта

В папку проекта необходимо скопировать файлы с исходным кодом рассмотренного в прошлой статье фильтра. Скопированные файлы подключаются к проекту. Для этого в главном меню CCS выбирают раздел Project,

a)

b)

c)

d)

d)

ЦСП

компоненты

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

103

Рис. 8. Подключение файлов к проекту

Рис. 9. Создание файлов с исходным кодом

а в нем — пункт Add Files to Project. Появится диалоговое окно Add Files to Project (рис. 8), где указываются тип (файлы с расширением .cpp) и выбираются имена подключаемых файлов. Файлы подключаются к проекту после нажатия кнопки подтверждения. Заголовочный файл (с расширением .h) подключается автоматически при компиляции проекта. Находясь в диалоговом окне Add Files to Project, необходимо контролировать размещение подключаемых файлов на жестком диске (окно «Папка» на рис. 8), так как при открытии окна не происходит автоматический переход в папку проекта. Открытие происходит на том месте, где окно было закрыто в последний раз.

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

Распределение памяти указывается в файле с расширением «.cmd». Для начала необходимо его создать. В главном меню CCS выбирают раздел File, затем пункт New и подпункт Sours File (рис. 9).

В ИСР появится рабочая область текстового редактора, где и пишется код (рис. 10).

Образцы этих файлов можно посмотреть в поставляемых вместе с ИСР CCS учебных примерах. Листинг созданного файла для рассматриваемого имеет вид:

MEMORY

{

IPRAM : origin = 0x0, len = 0x10000 IDRAM : origin = 0x80000000, len = 0x10000

}

SECTIONS

{

.vectors > IDRAM .text > IDRAM

.bss > IDRAM .cinit > IDRAM .const > IDRAM .far > IDRAM .stack > IDRAM .cio > IDRAM .sysmem > IDRAM

}

Рис. 10. Написание программного кода функции

Рис. 11. Сохранение файлов с исходным кодом

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

Набранный файл необходимо сохранить, указав тип «.cmd» и имя, например, «standard» (рис. 11a и 11b). Затем файл необходимо подключить к проекту, так как, в отличие от VS, автоматически это не происходит.

Рис. 12. Подключение библиотеки

Дальнейшая настройка проекта заключается в подключении внешней библиотеки, необходимой для работы с функциями языка С. Подключение происходит так же, как и в предыдущих случаях. Необходимо только правильно указать тип файла и путь к нему. В рассматриваемом примере подключается библиотека с именем «rts6201.lib», которая расположена в директории, где инсталлирована ИСР CCS, в папке «c6000\cgtools\lib\» (рис. 12).

ЦСП фирмы TI имеют как внутреннюю память, расположенную внутри чипа, так и возможность подключения внешней памяти. Для обеспечения работы с внешней памятью необходимо установить режим дальней адресации. Для этого в главном меню выбирают раздел Project, затем пункт Bild Options (рис. 13a). Появится окно настройки параметров проекта (рис. 13b). В нем на закладке Compiler в окне Category выбирают позицию Advanced. Затем в окне Memory Models задают параметр Far Calls & Data.

104

компоненты

ЦСП

Рис. 13. Определение дополнительных параметров проекта

В рамках файловой модели не рекомендуется использовать динамическое распределение памяти. Однако CCS при создании выходного бинарного файла использует динамическую память («хип», или «Heap»), особенно при вызове функций языка С. Поэтому необходимо указать размер памяти, которая выделяется под динамические объекты. Это можно сделать в окне настроек параметров проекта на закладе Linker в категории Basic, где в окне Heap Size указывается размер динамической памяти (рис. 13c). В этой же категории в окне Stack Size необходимо указать размер области памяти, выделяемой под стек (рис. 13c). Размер стека и «хипа» можно определить экспериментально, при тестовых запусках проекта. В рассматриваемом примере используется одинаковый размер этих областей памяти, равный 0x1000.

Следующий шаг настройки проекта — определение карты памяти. В главном меню необходимо выбрать раздел Options, далее — пункт Memory Map (рис. 14a). Появится окно настройки карты памяти (рис. 14b). В нем необходимо снять флажок с позиции Enable Memory Mapping. В этом случае CCS будет руководствоваться картой памяти, определенной в файле «standard.cmd».

И, наконец, заключительный этап настройки проекта — определение порядка загрузки бинарного файла в ЦСП. В примере используется автоматическая загрузка после каждой трансляции исходных текстовых файлов в исполняемый бинарный модуль (файл с расширением «.out»). Для установки этого режима необходимо выбрать раздел Options главного меню ИСР, далее — пункт Customize

(рис. 15a). В появившемся окне выбрать закладку Program Load After Build. На этой закладке установить флажок в позиции Load Program After Build (рис. 15b).

Проект собран и готов к компиляции. Ее можно осуществить в трех режимах (аналогичных режимам компиляции VS):

• Компиляция всех файлов проекта (значок Н на панели быстрых кнопок CCS). При этом все файлы с расширением «.cpp» транслируются в объектные модули (файлы с расширением «.obj»). Затем объектные модули компонуются в выходной файл с расширением «.out». Выходной файл содержит исполняемый бинарный модуль. Исполняемый модуль необходимо загрузить в память процессора. Это происходит автоматически в режиме Load Program After Build. Кроме того, это можно сделать через главное меню CCS: в пункте File выбрать подпункт Load Program (рис. 16a). В появившемся окне указать место расположения (папка Debug проекта), тип (.out) и имя загружаемого файла (рис. 16b).

• Компиляция только файлов проекта, которые были изменены после предыдущей трансляции (значок ЕЗ). В этом режиме в объектные модули транслируются только измененные после последней компиляции исходные файлы. После этого происходит формирование нового выходного файла.

• Трансляция только одного активного (открытого в данный момент в текстовом редакторе CCS) файла (значок ®). В этом режиме компоновка файлов не происходит,

Рис. 14. Определение карты памяти

Рис. 15. Определение порядка загрузки бинарного файла в ЦСП

ЦСП компоненты 105

Рис. 19. Вид CCS после свертывания окна дизассемблера

Рис. 21. Сохранение настроек интерфейса

и новый исполняемый модуль не создается. Режим используется для проверки синтаксиса активного файла.

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

Вместо рабочей области текстового редактора появилось окно дизассемблера. В данном примере необходимость в нем отсутст-

вует, поэтому рекомендуется его свернуть. Для этого необходимо щелкнуть правой кнопкой мыши в окне дизассемблера и снять флажок с позиции Float In Main Window (рис. 18). ИСР примет вид, показанный на рис. 19.

Кроме этого, внизу ИСР появилось еще одно окно с закладками. В нем выводятся информационные сообщения о процессе трансляции и отладки проекта. Например, выбрав закладку Build, можно увидеть информацию об ошибках при трансляции проекта (рис. 19).

Создание проекта завершено. Однако при повторном запуске CCS и загрузке разработанного проекта через главное меню (в пункте Project необходимо войти в раздел Open и выбрать имя нужного проекта, как это показано на рис. 20a и 20b) ИСР будет запущена при стандартных настройках интерфейса, что часто не очень удобно.

Интерфейс CCS легко можно настраивать под потребности решаемой задачи. Практически все окна и панели инструментов можно «перетаскивать» мышкой. Поэтому, наст-

106 компоненты ЦСП

Рис. 22. Запуск проекта с сохраненными настройками интерфейса

Рис. 25. Сравнение результата с эталоном

Рис. 24. Контроль работы ЦСП

роив интерфейс, необходимо сохранить эти настройки. Для этого в пункте File главного меню необходимо выбрать раздел Workspase, в нем пункт Save Workspase As и сохранить настройки рабочего пространства в нужной папке с произвольным именем (рис. 21a и 21b).

При повторном запуске ИСР производится загрузка не проекта, а рабочего пространства с сохраненными настройками интерфейса CCS (в пункте File войти в раздел Workspase и пункте Load Workspase выбрать нужное рабочее пространство, как это показано на рис. 22a и 22b).

Для тестирования программного кода необходимо скопировать в папку проекта файл, содержащий отсчеты входного сигнала. Его можно взять из примера в предыдущей статье. В отличие от VS, файл должен находиться в папке Debug. В эту же папку скопи-

ровать и выходной файл, полученный в предыдущей статье, но с другим именем, например, «outCPP.dat». Он будет эталоном при сравнении результатов работы программного кода в VS и CCS.

Запуск программы можно произвести несколькими способами:

• первый — через главное меню CCS: выбрать пункт Debug, затем — Run (рис. 23);

• второй — нажать кнопку [Ж на кнопочной панели;

• третий — нажать функциональную клавишу F5.

Контроль работы ЦСП можно осуществлять по сообщению, выводимому в левом нижнем углу CCS (рис. 24a — процессор работает, рис. 24b — остановлен).

После остановки процессора в папке Debug появляется выходной файл «out.dat».

Сравнив его с эталонным файлом средствами любого менеджера окон, можно убедиться, что он идентичен файлу, полученному при тестировании программного кода в У8 (рис. 25).

В следующей статье будет показано, как переписать часть программного кода на ассемблере.

Все файлы проекта можно скачать с сайта www.scanti.ru. Рекомендуется при первом запуске ССв загрузить проект, а не рабочее пространство, настроить интерфейс заново и сохранить настройки, так как параметры интерфейса учитывают конфигурацию ПК, на котором разрабатывается проект. При загрузке проекта будет выведено сообщение об ошибочном пути к библиотеке «Лї6201.КЬ». Необходимо скорректировать путь в соответствии с размещением ССв на компьютере. ■

i Надоели баннеры? Вы всегда можете отключить рекламу.