Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прикладное программирование 2014 / Прикладное программирование -Конспект лекций - заготовка для издания.doc
Скачиваний:
161
Добавлен:
21.03.2016
Размер:
3.24 Mб
Скачать

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для всех периферийных устройств контроллера. Пользователю не нужно создавать макросы для доступа к регистрам периферийных устройств.