Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Prikladnoe_programmirovanie_-Konspekt_lektsy

.pdf
Скачиваний:
17
Добавлен:
21.03.2016
Размер:
2.86 Mб
Скачать

Для включения режима выбрать Debug → Rude Real-time Mode, в нижней части окна должна появиться надпись “RUDE”.

8.4 Опции Reset

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

8.4.1Reset целевой платы останавливает исполнение программы и переводит все регистры в состояние, характерное для включения питания. Для перезапуска целевой платы выбрать Debug → Reset CPU (если целевая плата подключена).

8.4.2Reset эмулятора возможен только в отключенном от целевой платы состоянии (Disconnected). Для перезапуска эмулятора выбрать Debug → Reset Emulator (если целевая плата подключена). При перезапуске эмулятора целевая плата не затрагивается, ее перезапуск должен производиться самостоятельно нажатием кнопки или выбором Debug

→ Reset CPU.

Лекция №9 «Интегрированная среда программирования Code Composer Studio. Средства анализа и оптимизации, вспомогательные инструменты»

9.1 Анализ и оптимизация программы

Эффективность программы может оцениваться по соотношению различных факторов, критерии оценки диктуются конкретным применением. Средства анализа обеспечивают сбор и интерпретацию данных о факторах, влияющих на эффективность. Средства оптимизации предназначены для модификации кода программы для повышения ее эффективности.

9.1.1 Анализ эффективности программы

Визуализация данных может осуществляться в CCS в виде графиков, диаграмм и изображений. Выбор вида представления данных производится через меню View → Graph. В открывшемся диалоговом окне задаются свойства выбранного представления. Дополнительные сведения по возможным настройкам средств представления информации можно получить из выпадающих меню.

После установки свойств щелкните по кнопке ОК для открытия графического окна. Изображение в окне будет обновляться при достижении каждой точки останова, либо по каждой остановке программы (Halt), если к изображению не подключены точки останова.

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

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

-включение/выключение анализа;

-подсчет появления выбранных событий;

-остановка исполнения программы при появлении выбранного события;

-удаление событий, которые подсчитываются при исполнении программы или вызывают ее остановку;

-создание log файла;

-сброс счетчика событий.

Для использования средств анализа симулятора:

-загрузить программу;

-запустить средства анализа

9.1.3 Средства анализа в реальном времени

51

Обеспечивают возможность зондировать, рассматривать и отслеживать состояние целевой платы во время исполнения программы. Утилиты используют физически тот же канал JTAG-интерфейса для связи между целевой платой и компьютером программиста. Для использования этих средств целевая плата должна использовать ядро DSP/BIOS, которое также обеспечивает связь по физическому каналу в реальном времени, поставляя информацию для визуализации в окнах CCS. Доступ к инструментам анализа в реальном времени через кнопки на панели инструментов или меню DSP/BIOS:

Message Log – отображает последовательности событий во времени, полезны для прослеживания управления в программе. Запись последовательности событий можно вывести в файл, щелкнув правой кнопкой по окну Message Log и выбрав

Property Page;

Statistics View – отображает суммарную статистику, накопленную в ядре. Можно изменить настройки отображения, щелкнув правой кнопкой по окну Statistics View

и выбрав Property Page;

Host Channel Control – отображает каналы связи с компьютером программиста, задействованные программой. Через это окно можно прикрепить файлы к каналам, начать передачу данных через канал и отследить количество переданных данных.

RTA Control Panel – управляет слежением за целевой программой и сбором статистики.

Execution Graph – отображает исполнение потоков в реальном времени. Через этот график можно проследить время и порядок исполнения потоков (отображается толстой синей линией). Информацию о линиях графика можно получить, щелкнув правой кнопкой по окну Execution Graph и выбрав Legend.

CPU Load Graph – отображает загрузку целевого CPU, усредненную за выбранный период для устранения кратковременных выбросов.

Kernel/Object View – отображает конфигурацию, состояние и статус объектов DSP/BIOS (как динамических так и статических), запущенных на целевой плате. Для сохранения текущих данных щелкнуть правой кнопкой по окну Kernel/Object View и выбрать Save Server Data.

9.2 Оптимизация прикладной программы

Процесс оптимизации начинается после окончания анализа, когда определены неэффективные участки кода. Процесс оптимизации заключается в определении возможности улучшения неэффективных участков кода, назначении целей оптимизации и попытке достижения этих целей при модификации программы. CCS органично связывает инструменты между собой и обеспечивает единую платформу для анализа прогресса при подстройке программы.

9.2.1 Окно советов (Advice Window) отображает информацию по подстройке программы: руководит процессом подстройки, объясняя соответствующие шаги и отображая результат, и связывает с другими инструментами и документацией. Окно советов находится в левом нижнем углу экрана и открывается кнопкой Tuning Layout или через меню Profile → Tuning. В верхней части окна находится линейка инструментов для перемещения по страницам, в нижней части – голубой прямоугольник, содержащий предложение последующих действий по подстройке программы. Сообщения красного цвета являются предупредительными и содержат советы по решению различных проблем. 9.2.2 Profile Setup –открывается из окна советов нажатием на иконку Profile Setup (либо через меню Profile → Setup), окно открывается в правой части экрана. В нижней части окна находятся кнопки для переключения таблиц, в первой таблице Activities отображается характеристики работы, для которых будут собираться данные, во второй таблице Ranges определяются части программ (в том числе функции, петли и сегменты

52

арбитража), для которых будет собираться информация для подстройки. Адреса точек выхода Exit points устанавливаются в третьей таблице (Control), чтобы уведомить CCS, когда прекратить сбор данных.

9.2.3 Окно целей (Goals Window) предназначено для отображения динамики приближения к заданным целям в процессе подстройки программы. Окно открывается через меню Profile → Tuning → Goals. Цели – желаемые значения размера программы и число циклов для ее исполнения, заносятся в соответствующие ячейки таблицы, в других ячейка проявляются текущие и предыдущие значения параметров эффективности, которые обновляются при каждом исполнении программы. При достижении цели текущее значение параметра меняет цвет на зеленый и замыкается в скобки.

9.2.4 Profile Viewer отображает в виде таблицы все данные, собираемые в процессе подстройки программы. Ряды в таблице соответствуют элементам кода, выбранным в таблице Ranges окна Profile Setup. В столбцах собраны данные для каждой анализируемой части программы, соответствующие функциям, определенным в таблице Activities. Profile Viewer точно находит самое неэффективное место в программе. Чтобы определить, например, функцию, в наибольшей мере занимающую кэш, данные, соответствующие месту в кэш-памяти, могут быть рассортированы в убывающем порядке – затем проанализирована функция и найдена часть кода, которая генерирует заполнение кэш.

Лекция №10 «Интегрированная среда программирования Code Composer Studio. Особенности программирования. Заголовочные файлы. Библиотека примеров фирмы Texas Instruments и их использование в прикладных программах. Использование MATLAB и LabVIEW для подготовки и тестирования программ. Аппаратная платформа для выполнения лабораторных работ TMS320C2000 DSC Experimenter Kit. Назначение, устройство, особенности работы»

10.1 Заголовочные файлы и примеры для периферии (C/C++ Header Files and Peripheral Examples)

10.1.1 Заголовочные файлы и примеры программ облегчают написание программ и освоение CCS. Заголовочные файлы могут быть легко внедрены на уровне С/С++ кода в новые и модифицируемые программы для обеспечения доступа к периферийным модулям контроллера. Пользователь при написании новых программ может также использовать функции, взятые из примеров.

Структура дерева каталогов, формирующегося при установке, приведена в таблице.

Каталог

Подкаталог

Описание

\doc

 

Документация

\DSP2833x_headers

Файлы, необходимые для внедрения заголовков в проект

 

\cmd

Файлы команд линкера

 

\source

Исходные тексты, необходимые для внедрения

 

 

заголовков в проект

 

\include

Заголовочные файлы для каждого из периферийных

 

 

модулей

 

\gel

CCS .gel файлы

\DSP2833x_common

Исходные тексты примеров для иллюстрации, как

 

 

программировать, используя заголовочные файлы

 

\cmd

Командные файлы распределения памяти в контроллерах

 

\source

.с файлы, используемые в примерах

 

\include

.h файлы, используемые в примерах

 

\lib

.lib файлы, используемые в примерах

 

\gel

CCS .gel файлы для каждого из представителей

53

 

 

семейства TMS320F28xxx

\DSP2833x_examples

Проекты примеров, компилированные с использованием

 

 

блока плавающей точки

\DSP2823x_examples

Проекты примеров, компилированные без использования

 

 

блока плавающей точки

10.1.2 Структурный подход Регистровый файл – набор регистров, принадлежащих периферии. Эти регистры

группируются в C/C++ как члены структуры – это называется структурой регистрового файла. При компиляции структура размечается в памяти прямо поверх периферийных регистров. Такая разметка обеспечивает компилятору эффективный доступ к регистрам при использовании указателя страницы данных CPU.

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

Эти структуры реализованы в C/C++ Header Files and Peripheral Examples для всех периферийных устройств контроллера. Пользователю не нужно создавать макросы для доступа к регистрам периферийных устройств.

10.2 Примеры программ

Библиотека включает более 40 примеров, охватывающих типовые применения периферийных устройств и блоков контроллера.

Все примеры имеют одинаковую структуру, включающую:

-заголовочные файлы;

-файлы уникального для данного примера исходного текста;

-файлы исходного текста, общего для всех примеров;

-командные файлы линкера.

Заголовочные файлы:

DSP28x_Project.h – находятся в подкаталоге \ DSP2833x_common\include. DSP2833x_Device.h – находятся в подкаталоге \ DSP2833x_headers\include и

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

DSP2833x_Examples.h – находятся в подкаталоге \ DSP2833x_common\include и

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

Файлы исходного текста:

Файлы DSP2833x_GlobalVariableDefs.c – находятся в подкаталоге \ DSP2833x_headers\source, должны использоваться с любым заголовочным файлом и назначают структуру переменных и данных в периферийных регистрах;

Файлы уникального для данного примера исходного текста имеют в начале имени название примера и располагаются подкаталогах конкретных примеров;

Файлы исходного текста, общего для всех примеров – находятся в подкаталоге \ DSP2833x_common\source и содержат общие функции периферии, функции утилит, которые пользователь может использовать в своих проектах.

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

10.3 Порядок внедрения заголовочных файлов и примеров программ

54

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

Шаг 1: ввести в проект файл DSP2833x_Device.h

Отредактировать DSP2833x_Device.h выбрав контроллер, используемый в проекте.

Шаг 2: добавить в проект файл DSP2833x_GlobalVariableDefs.c, в котором объявляются переменные, используемые при доступе к периферии, и содержится раздел данных #pragma assignments, используемый линкером при размещении переменных в соответствующих местах памяти.

Шаг 3: добавить в проект из DSP2833x_headers\cmd, командный файл линкера:

-DSP2833x_headers_nonBIOS.cmd, DSP2833x_headers_nonBIOS;

-DSP2833x_headers_BIOS.cmd, DSP2833x_headers_nonBIOS.

В ССS версии 3.3 соответствующий файл просто добавляется в проект:

-далее откройте меню Project → Build Options;

-выберите Linker tab;

-выберите Basic;

-в окне Library Search Path добавьте путь к \DSP2833x_headers\cmd Вашей системы.

Шаг 4: добавить в проект путь к заголовочным файлам, для чего в ССS версии 3.3:

55

-откройте меню Project → Build Options;

-выберите Compiler tab;

-выберите pre-processor;

-в окне Include Search Path добавьте путь к \DSP2833x_headers\include Вашей системы.

Шаг 5: установить при необходимости дополнительные опции через меню Project

Build Options.

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

Шаг 1: ввести в проект файл DSP2833x_Examples.h

Шаг 2: добавить в проект путь к файлам примера, для чего в ССS версии 3.3:

-откройте меню Project → Build Options;

-выберите Compiler tab;

-выберите pre-processor;

-в окне Include Search Path добавьте путь к \DSP2833x_common\include Вашей системы, перечисляя директории через точку с запятой (пример:

…\DSP2833x_headers\include;…\DSP2833x_common\include).

Шаг 3: добавить в проект из DSP2833x_common\cmd командный файл линкера для соответствующего контроллера, для 28335:

-28335_RAM_lnk.cmd – для работы с оперативной памятью контроллера;

-F2833x.cmd – для использования Flash и OTP памяти.

Шаг 4: установить частоту CPU

56

Шаг 5: добавить в проект из DSP2833x_common\source необходимые файлы исходного кода.

Шаг 6: при необходимости включить в проект .с файлы для поддержки PIE блока.

10.4 Использование MATLAB и LabVIEW для подготовки и тестирования программ.

10.4.1Использование пакета MATLAB для разработки и тестирования программ

Всостав пакета MATLAB входит модуль Embedded Coder™, который генерирует компактные и быстрые программы на языке C и C++ для использования во встраиваемых процессорах и платах для быстрого прототипирования на основе таких процессоров.

Embedded Coder™ включает MATLAB Coder™ и Simulink Coder™,

обеспечивающие конфигурацию и оптимизацию генерируемого кода с учетом специфики конкретного процессора. Пакет Embedded Coder™ стыкуется с системами программирования основных производителей, втом числе с Code Composer Studio фирмы

Texas Instruments и VisualDSP++ фирмы Analog Devices.

Конфигурирование и работа с конкретным программируемым устройством (процессором, платой прототипа) производится с использованием интерфейса проекта в MATLAB Coder или Simulink Model Explorer. Первый позволяет конфигурировать и создавать проекты, а последний генерировать коды для моделей и подсистем, выбрать из списка программируемое устройство и сконфигурировать его для генерации кода.

Рис.10.1 Связь функционального и программного описаний объекта

Для трансляции кодов MATLAB и моделей Simulink в исходные тексты и исполняемые модули программируемых устройств используются конфигурационные файлы этих устройств.

57

Для кодов MATLAB определяют вид выходной информации: MEX-file, C/C++ static library или C/C++ executable. При конфигурировании Simulink определяется среда, в которой будет исполняться программа. Среди других Embedded Coder содержит конфигурационный файл IDE Link Target, который генерирует коды для компиляции и загрузки, в частности, для Code Composer Studio IDE фирмы Texas Instruments.

Конкретное программируемое устройство выбирается из имеющегося в пакете списка, который может быть расширен.

Используя Embedded Coder можно оптимизировать программу поблочно для дальнейшего уменьшения размера кода. Данные по блокам обмениваются с генерируемым кодом через глобальные переменные и аргументы функций. Генерируемый код отслеживается на модели системы на уровне блоков и сигналов. Двусторонние связи существуют между строками кода и моделью, облегчая навигацию между строками кода и элементами Simulink-модели.

Embedded Coder позволяет перенести генерируемый код в среду реального исполнения. При использовании Simulink Embedded Coderвозможности приближения к реальным условиям системы существенно улучшены.

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

Embedded Coder генерирует .main программу базируясь на заданной информации о реальной среде применения.

Рис.10.2 Кастомизация проекта

10.4.2Использование пакета LabVIEW для разработки и тестирования программ

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

LabVIEW DSP-модуль предназначен для проектирования систем на базе сигнальных процессоров. Его использование позволяет применить такие методы цифровой обработки сигналов (ЦОС), как спектральный анализ и фильтрация для

58

программирования сигнальных процессоров в LabVIEW. При использовании графического программирования время разработки приложений для поддерживаемых аппаратных средств значительно снижается, так как нет необходимости в знании текстовых языков программирования.Кроме того, модуль оснащен удобной справкой, что позволяет создавать более производительный код.

LabVIEW DSP-модуль поддерживает ряд устройств, включая N1SPEEDY-33, TMS320C6713 DSK и TMS320C6711 DSK. Он адресует аналого-цифровое преобразование, цифроаналоговое преобразование или цифровой ввод/вывод в целевые устройства для выполнения единичных или многоточечных операций. При создании приложений инженеры могут конфигурировать порт, тактирование, размер буфера и некоторые другие опции. В том случае, когда необходимо переключиться на другое аппаратное средство, узлы ввода/вывода автоматически изменяются для работы с новым устройством.

Функции пакета LabVIEW DSP Test Toolkit позволяют работать с проектами CCS. Это означает, что можно открыть файл проекта (.pjt-файл) скомпоновать его, а затем загрузить результат в плату DSK. Для открытия проекта необходимо указать располо- жение .pjt-файла на соответствующем входе ВП «Открыть проект CCS>> (CCS Open Project VI). Для компоновки проекта используется ВП CCS Build VI, который создает код DSP. ВП CCS Download Code VI загружает код в плату DSK. Далее для запуска загруженного кода применяется ВП CCS Run VI. Виртуальные приборы CCS Halt VI и CCS Close Project VI останавливают выполнение кода и закрывают проект CCS.

После создания кода DSP и загрузки на плату DSK, можно разработать в LabVIEW тестирующую систему, для проверки корректности его работы. Использование системы тестирования позволяет передать результаты симуляции в процессор и проанализировать выходные данные. Для этого в LabVIEW предустановленна палитра функций, использующих технологию RTDX. Входными и выходными данными могут быть любые тестовые величины, которые необходимо передать в код DSP и считать для анализа.

На рис. 10.3 показана блок-схема, поясняющая процесс передачи и приема данных с кода DSP, запущенного на плате DSK. Функциональный генератор (Basic Function Generator VI) генерирует синусоиду, далее этот сигнал подается на вход ВП CCS RTDX Write Array 116, записывающий массив данных в процессор, затем без прерывания выполнения кода, результат считывается с выходного канала ВП CCS RTDX Read Array

116 VI.

Рис. 10.3. Обмен данными с сигнальным процессором

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

На рис. 10.4 показана блок-схема ВП «Загрузка кода CCS» (CCS Download Code VI), построенная с использованием функций углубленного тестирования. ВП CCS Get Build Path VI возвращает полный путь к скомпилированному файлу с расширением .out. Узел вызова (Invoke node) вызывает метод, по которому загружается указанный файл в плату DSK. Функция информации о файле/ директории (File/Directory Info function) возвращает размер .out-файла, используя данные о котором, ВП вычисляет необходимое время

59

загрузки. Во время выполнения программы ВП CCS Status VI отображает пользовательские данные о текущем состоянии операции.

Рис. 10.4. Использование функций углубленного тестирования

LabVIEW DSP-модуль предназначен для использования в любых инженерных задачах, в решении которых, как правило, применяют сигнальные процессоры. Его можно применять для изучения фундаментальных основ ЦОС с применением аппаратных средств, проектирования систем связи, звуковой обработки и управления двигателями.

Процесс проектирования приложения с использованием DSP-модуля включает рядэтапов. После создания виртуального прибора необходимо его скомпилировать и загрузить полученный код в выбранное устройство. Данный программный код очень компактен и эффективен для большинства приложений с доступной памятью на 32 кб слов. При работе с устройствами N1SPEEDY-33, TI С6711 DSK и С6713 DSK можно загрузить виртуальный прибор во флэш-память для испытания реальных систем. Одно из преимуществ графического программирования процессоров с использованием DSPмодуля - это наличие лицевой панели прибора, которая является интерактивным интерфейсом пользователя при обмене данными с устройством. В процессе создания ВП пользователь легко может добавлять элементы управления и контроля для удобства отладки и проверки правильности работы кода.

10.5 Аппаратная платформа для выполнения лабораторных работ TMS320C2000 DSC Experimenter Kit. Назначение, устройство, особенности работы»

TMS320C2000 DSC Experimenter Kit предназначен для ознакомления с контроллерами семейства TMS320F28x. Набор состоит из двух плат: базовой платы и платы с одним из представителей семейства TMS320F28x, для лабораторных работ используются платы с контроллером TMS320F28335.

Базовая плата «docking station» представляет собой миниатюрную материнскую плату с розеткой соединителя, в которую устанавливается процессорная плата «controlCARD». Базовая плата обеспечивает систему питанием с напряжением 5 В и 3,3 В и через вилки установленных на ней соединителей обеспечивает доступ ко всем выводам GPIO и входам АЦП. На ней также расположены соединитель интерфейса RS-232, джамперы для настройки режима загрузки и две области для макетирования с монтажными отверстиями, расположенными с шагом 2,54 мм.

60

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