Программирование цифровых сигнальных процессоров TMS320C67x TMS320C67x: выбор процессора? TMS320C67x: выбор процессора? ЦСП фирмы Texas Instruments Платформа С2000 – цифровые сигнальные контроллеры, совмещающие характеристики микроконтроллеров и ЦСП. Ориентированы на применение в системах управления. Платформа С5000 – процессоры для устройств широкого потребления, в том числе мобильных средств связи. Отличаются малым энергопотреблением, низкой ценой. Платформа С6000 – наиболее высокопроизводительные процессоры компании Texas Instruments. Архитектура ориентирована на использование языков высокого уровня (Си). Используются в системах обработки видео, аудиоданных и изображений, системах связи. ЦСП TMS320C67x Семейство ЦСП TMS320C67x – это семейство процессоров с плавающей точкой платформы С6000. Включает модели: С6701, С6713, С671х, С672х, С674х. Данные процессоры используются в: аудиосистемах высокого качества, различных аудиопроцессорах, системах биометрии, медицинском диагностическом оборудовании, системах обработки изображений, телекоммуникационном оборудовании, системах синтеза и обработки речи. ЦСП TMS320C6713 Характеристики процессора TMS320C6713 (2Q 2008): Тактовая частота: 300 МГц Объем внутренней памяти: 4 Кбайт + 4 Кбайт + 256 Кбайт Командный цикл: 3.3 нс Производительность: 1800 MFLOPS Цена: $36.60 Средства разработки программного обеспечения ЦСП TMS320C67x Системы моделирования (Matlab, LabView), языки высокого уровня (Cи) Средства разработки программного обеспечения ЦСП TMS320C67x Системы моделирования (Matlab, LabView), языки высокого уровня (Cи) Средства разработки программного обеспечения ЦСП TMS320C67x Системы моделирования (Matlab, LabView), языки высокого уровня (Cи) Средства разработки программного обеспечения ЦСП TMS320C67x Системы моделирования (Matlab, LabView), языки высокого уровня (Cи) Средства разработки программного обеспечения ЦСП TMS320C67x Системы моделирования (Matlab, LabView), языки высокого уровня (Cи) Программа-симулятор Средства разработки программного обеспечения ЦСП TMS320C67x Системы моделирования (Matlab, LabView), языки высокого уровня (Cи) Программа-симулятор Средства разработки программного обеспечения ЦСП TMS320C67x Системы моделирования (Matlab, LabView), языки высокого уровня (Cи) Программа-симулятор Стартовые наборы разработчика и оценочные платы Средства разработки программного обеспечения ЦСП TMS320C67x Системы моделирования (Matlab, LabView), языки высокого уровня (Cи) Программа-симулятор Стартовые наборы разработчика и оценочные платы Средства разработки программного обеспечения ЦСП TMS320C67x Системы моделирования (Matlab, LabView), языки высокого уровня (Cи) Программа-симулятор Стартовые наборы разработчика и оценочные платы Эмуляторы Средства разработки программного обеспечения ЦСП TMS320C67x Системы моделирования (Matlab, LabView), языки высокого уровня (Cи) Программа-симулятор Стартовые наборы разработчика и оценочные платы Эмуляторы Программирование ЦСП TMS320C67x Типовой процесс разработки ПО для ЦСП: 1. Разрабатывается алгоритм обработки сигнала, проводится его моделирование и исследование в системах MATLAB, LabView. Возможно создание и отладка ПО на языках высокого уровня (обычно Си), реализующее требуемый алгоритм. 2. В специальной среде программирования ЦСП формируется проект, нацеленный на выполнение на конкретном сигнальном процессоре. Проект может разрабатываться на основе языка Си или в кодах ассемблера. Разработка проекта может производиться «вручную» или выполняться автоматически средствами MATLAB или LabView. Моделируется выполнение ПО на ЦСП. Моделировать работу процессора программно, не имея самого процессора, позволяют программы-симуляторы. Программа-симулятор позволяет осуществить отладку, оптимизацию и тестирование программного обеспечения, оценить параметры исполнения ПО на данном ЦСП. 3. Разработанное и отлаженное в симуляторе программное обеспечение тестируется на реальном, «живом» процессоре. Для этого используют проверочные модули. Это платы, включающие в свой состав сигнальный процессор и типовые элементы систем ЦОС – дополнительную памяти, АЦП/ЦАП и другие. На таких модулях можно полностью реализовать простые цифровые системы обработки аналогового сигнала, а порой и получить законченный продукт, не разрабатывая собственного аппаратного обеспечения. Проверочные модули можно разделить на стартовые наборы и отладочные модули. Отладочные модули отличаются от стартовых наборов большим числом специализированных аппаратных узлов, более высоким их качеством, ценой. 4. Заключительным этапом разработки является отладка ПО на сигнальном процессоре, встроенном в конечное оборудование. При этом сохраняется возможность доступа к процессору с персонального компьютера для анализа его работы и отладки в реальном времени. Такую возможность обеспечивают устройства сопряжения ПК и ЦСП – эмуляторы. Среда Code Composer Studio Среда Code Composer Studio Позволяет: Создавать программы (средства редактирования, связь с Матлаб) Среда Code Composer Studio Позволяет: Создавать программы (средства редактирования, связь с Матлаб) Строить проект (компилятор С/С++, оптимизатор) Среда Code Composer Studio Позволяет: Создавать программы (средства редактирования, связь с Матлаб) Строить проект (компилятор С/С++, оптимизатор) Загружать код на целевое оборудование (разные платформы) Среда Code Composer Studio Позволяет: Создавать программы (средства редактирования, связь с Матлаб) Строить проект (компилятор С/С++, оптимизатор) Загружать код на целевое оборудование (разные платформы) Анализировать и управлять процессом выполнения программы (средства визуализации, в том числе обмен данными в реальном времени) Среда Code Composer Studio Вся работа с ЦСП TMS320C67х, включая этапы разработки и отладки ПО, симуляции, отладки на «живом» процессоре и работы с конечным оборудованием, ведется через персональный компьютер с использованием программной среды разработки и отладки программного обеспечения Code Composer Studio. Code Composer Studio позволяет: создавать программы – писать и редактировать тексты программ на Си и ассемблере, импортировать проект для ЦСП из систем MATLAB или LabView. осуществлять построение проекта – генерировать на основе написанных программ машинных кодов для заданного ЦСП. При этом доступны компилятор языков Си/Си++ и средства оптимизации Си и ассемблерных кодов. Загружать код на целевое оборудование – инициировать выполнение кодов программ в режиме симуляции или при их наличии на различных аппаратных платформах (проверочных модулях, платах собственного изготовления) . Анализировать и управлять процессом выполнения программы – наблюдать за состоянием внутренних ресурсов процессора и изменять их состояние, что необходимо для отладки ПО. Имеются удобные средства визуализации состояния процессора (построение графиков, анализ спектра и др.). Поддерживается полноценный анализ и управление состоянием процессора при программировании аппаратного обеспечения и в реальном времени. Система команд ЦСП TMS320C67x Цифровые сигнальные процессоры – разрабатываются специально для быстрого выполнения алгоритмов цифровой обработки сигналов. Вся их архитектура нацелена на решение задач ЦОС в реальном масштабе времени. Основной принцип программирования ЦСП – использование аппаратных узлов в полной мере. всех Каждая функция аппаратных модулей ЦСП превращается в команду. Так появляется набор команд, полностью описывающий поведение всех ресурсов ЦСП – система команд. Система команд описывается языком АССЕМБЛЕРа индивидуальна для каждого ЦСП. и строго Система команд ЦСП TMS320C67x Синтаксис команд: Мнемоника Исполняющий вычислительный блок Операнды источники Регистр назначения Система команд ЦСП TMS320C67x Синтаксис команды: Мнемоника Исполняющий вычислительный блок Операнды источники Пример: ADD .L1 A1,A2,A3 Регистр назначения Система команд ЦСП TMS320C67x Синтаксис команды: Мнемоника Исполняющий вычислительный блок Операнды источники Пример: ADD .L1 A1,A2,A3 ~ .L1: A3 = A1 + A2 Регистр назначения Система команд ЦСП TMS320C67x Пакет выполнения (параллельно выполняемые команды): || || || команда1 команда2 команда3 команда4 Система команд ЦСП TMS320C67x Пакет выполнения (параллельно выполняемые команды): || || || команда1 команда2 команда3 команда4 Пример: || || || || LDW MPYSP STW SUB B .D1T1 .M2X .D2T2 .S2 .S1 *A7++[1],A1 A1,B1,B2 B2,*B7++[1] B0,1,B0 _LOOP_KERNEL Система команд ЦСП TMS320C67x Команды, выполняемые по условию: [B0]команда или [!B0]команда Система команд ЦСП TMS320C67x Команды, выполняемые по условию: [B0]команда или [!B0]команда Пример: || || || || LDW MPYSP STW [B0]SUB [B0]B .D1T1 .M2X .D2T2 .S2 .S1 *A7++[1],A1 A1,B1,B2 B2,*B7++[1] B0,1,B0 _LOOP_KERNEL Система команд ЦСП TMS320C67x При объединении команд в пакеты выполнения внимательным к совместному использованию ресурсов следует быть Система команд ЦСП TMS320C67x При объединении команд в пакеты выполнения следует внимательным к совместному использованию ресурсов: LDW ||MV ||MPYSP ||STW .D2T2 .L2X .M1 .D2T2 *B3++[1],B5 A2,B2 A1,A1,A2 B2,*B7++[1] быть Система команд ЦСП TMS320C67x При объединении команд в пакеты выполнения следует внимательным к совместному использованию ресурсов: LDW ||MV ||MPYSP ||STW .D2T2 .L2X .M1 .D2T2 *B3++[1],B5 A2,B2 A1,A1,A2 B2,*B7++[1] LDW ||MV ||ADD ||STW .D2T2 .L2X .S2 .D1T1 *B3++[1],B5 A2,B2 B2,1,B2 A2,*A7++[1] быть Неверно! Система команд ЦСП TMS320C67x При объединении команд в пакеты выполнения следует внимательным к совместному использованию ресурсов: LDW ||MV ||MPYSP ||STW .D2T2 .L2X .M1 .D2T2 *B3++[1],B5 A2,B2 A1,A1,A2 B2,*B7++[1] LDW ||MV ||ADD ||STW .D2T2 .L2X .S2 .D1T1 *B3++[1],B5 A2,B2 B2,1,B2 A2,*A7++[1] быть Неверно! Неверно! Система команд ЦСП TMS320C67x Обращение к памяти Система команд ЦСП TMS320C67x Обращение к памяти Загрузка: LDW .D2T2 STW .D1T1 *B3,B5 Запись: A2,*A7 Система команд ЦСП TMS320C67x Обращение к памяти Загрузка: LDW .D2T2 *B3,B5 LDW .D2T2 *+B3[1],B5 STW .D1T1 A2,*A7 STW .D1T1 A2,*-A7[2] Запись: Система команд ЦСП TMS320C67x Обращение к памяти Загрузка: LDW .D2T2 *B3,B5 LDW .D2T2 *+B3[1],B5 LDW .D2T2 *B3++[1],B5 STW .D1T1 A2,*A7 STW .D1T1 A2,*-A7[2] STW .D1T1 A2,*A7--[2] Запись: Система команд ЦСП TMS320C67x Примеры !