
- •Прикладное программирование в информационно-навигационных системах
- •1.2 Направления повышения производительности (vliw, simd)
- •2.1 Цсп фирмы Texas Instruments. Семейства, области применения, особенности архитектуры.
- •2.2 Цифровой сигнальный контроллер tms320f28335
- •2.2.1 Основные параметры и характеристики
- •2.2.2 Краткое описание основных узлов и блоков
- •3.1 Вход/выходы общего назначения
- •3.2 Таймеры cpu
- •3.3 Внешний интерфейс
- •3.4 Прямой доступ к памяти
- •4.1 Модуль eQep квадратурного датчика (Encoder)
- •4.2 Модуль eCap захвата внешних событий (Capture)
- •4.3 Модуль ePwm широтно-импульсной модуляции
- •4.4 Модуль hrpwm широтно-импульсной модуляции с повышенным разрешением
- •4.5 Аналого-цифровой преобразователь adc
- •5.1 Модуль spi последовательного периферийного интерфейса
- •5.2 Модуль i2c межмикросхемного последовательного интерфейса
- •5.3 Модуль sci последовательного коммуникационного интерфейса
- •5.4 Модуль McBsp многоканального буферированного последовательного порта
- •5.5 Модуль can интерфейса
- •6.1.Интегрированная среда разработки и отладки программного обеспечения – общие понятия
- •6.2.Code Composer Studio ide (ccs): состав, общая характеристика
- •6.3 Настройка (Target and Host Setup), интерфейс пользователя
- •7.1 Конфигурация проекта
- •7.2 Текстовый редактор
- •7.3 Инструменты для создания программы
- •7.4 Построение проекта в ccs
- •7.5 Базовое программное обеспечение
- •8.1 Конфигурирование среды для отладки
- •8.2 Основные инструменты отладки
- •8.3 Отладка в реальном времени
- •8.4 Опции Reset
- •9.1 Анализ и оптимизация программы
- •9.2 Оптимизация прикладной программы
- •10.2 Примеры программ
- •10.3 Порядок внедрения заголовочных файлов и примеров программ
- •10.4 Использование matlab и LabView для подготовки и тестирования программ.
- •10.5 Аппаратная платформа для выполнения лабораторных работ tms320c2000 dsc Experimenter Kit. Назначение, устройство, особенности работы»
9.2 Оптимизация прикладной программы
Процесс оптимизации начинается после окончания анализа, когда определены неэффективные участки кода. Процесс оптимизации заключается в определении возможности улучшения неэффективных участков кода, назначении целей оптимизации и попытке достижения этих целей при модификации программы. CCSорганично связывает инструменты между собой и обеспечивает единую платформу для анализа прогресса при подстройке программы.
9.2.1 Окно советов (AdviceWindow) отображает информацию по подстройке программы: руководит процессом подстройки, объясняя соответствующие шаги и отображая результат, и связывает с другими инструментами и документацией. Окно советов находится в левом нижнем углу экрана и открывается кнопкойTuningLayoutили через менюProfile→Tuning. В верхней части окна находится линейка инструментов для перемещения по страницам, в нижней части – голубой прямоугольник, содержащий предложение последующих действий по подстройке программы. Сообщения красного цвета являются предупредительными и содержат советы по решению различных проблем.
9.2.2 ProfileSetup–открывается из окна советов нажатием на иконкуProfileSetup(либо через менюProfile→Setup), окно открывается в правой части экрана. В нижней части окна находятся кнопки для переключения таблиц, в первой таблицеActivitiesотображается характеристики работы, для которых будут собираться данные, во второй таблицеRangesопределяются части программ (в том числе функции, петли и сегменты арбитража), для которых будет собираться информация для подстройки. Адреса точек выходаExitpointsустанавливаются в третьей таблице (Control), чтобы уведомитьCCS, когда прекратить сбор данных.
9.2.3 Окно целей (GoalsWindow) предназначено для отображения динамики приближения к заданным целям в процессе подстройки программы. Окно открывается через менюProfile→Tuning→Goals. Цели – желаемые значения размера программы и число циклов для ее исполнения, заносятся в соответствующие ячейки таблицы, в других ячейка проявляются текущие и предыдущие значения параметров эффективности, которые обновляются при каждом исполнении программы. При достижении цели текущее значение параметра меняет цвет на зеленый и замыкается в скобки.
9.2.4 ProfileViewerотображает в виде таблицы все данные, собираемые в процессе подстройки программы. Ряды в таблице соответствуют элементам кода, выбранным в таблицеRangesокнаProfileSetup. В столбцах собраны данные для каждой анализируемой части программы, соответствующие функциям, определенным в таблицеActivities.ProfileViewerточно находит самое неэффективное место в программе. Чтобы определить, например, функцию, в наибольшей мере занимающую кэш, данные, соответствующие месту в кэш-памяти, могут быть рассортированы в убывающем порядке – затем проанализирована функция и найдена часть кода, которая генерирует заполнение кэш.
Лекция №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файлы для каждого из представителей семействаTMS320F28xxx | |
\DSP2833x_examples |
Проекты примеров, компилированные с использованием блока плавающей точки | |
\DSP2823x_examples |
Проекты примеров, компилированные без использования блока плавающей точки |
10.1.2 Структурный подход
Регистровый файл – набор регистров, принадлежащих периферии. Эти регистры группируются в C/C++ как члены структуры – это называется структурой регистрового файла. При компиляции структура размечается в памяти прямо поверх периферийных регистров. Такая разметка обеспечивает компилятору эффективный доступ к регистрам при использовании указателя страницы данныхCPU.
Поля битов могут быть использованы для присвоения имени и длины каждому функциональному полю внутри регистра. Регистры, определенные в терминах поля битов, позволяют компилятору манипулировать одиночными элементами в регистрах. Для примера, флаг может быть прочитан при обращении к имени поля бита, соответствующему этому флагу.
Эти структуры реализованы в C/C++ Header Files and Peripheral Examplesдля всех периферийных устройств контроллера. Пользователю не нужно создавать макросы для доступа к регистрам периферийных устройств.