
- •Прикладное программирование в информационно-навигационных системах
- •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. Назначение, устройство, особенности работы»
8.2 Основные инструменты отладки
8.2.1 Управление запуском программы может производиться следующими командами (через меню Debug):
Main– исполнение до функцииMainзапускается выборомDebug→GoMain;
Run– после остановки можно продолжить исполнение нажатием кнопкиRun;
Run to Cursor– курсор устанавливается на желаемое место в программе, затем программа запускает нажатием этой кнопки;
Set PC to Cursor– тоже с установкой курсора в программном счетчике
Animate– программа исполняется с задержках в точках останова на заданное время, устанавливаемое черезOptions→Customize);
Halt– остановка программы в любой момент нажатием на кнопку.
Пошаговый режим исполнения возможен только после останова. Пошаговое исполнение управляется кнопками. Возможны три вида шагов:
- Single StepилиStep Into- выполняет одно одиночное утверждение и останавливает исполнение;
- Step over– выполняет функцию и останавливает;
- Step out– выполняет текущую подпрограмму и возвращает вызванную функцию.
8.2.2 Точки останова (Breakpoints)
Является важнейшим инструментом отладки, служат для остановки исполнения программы в заданном месте с целью проверки правильности ее исполнения по значениям переменных, состоянию стека и т.д. Могут устанавливаться как в окне исходного текста, так и в окне дизассемблера. Отладка с точками останова нарушает работу в реальном времени и служит для проверки алгоритма.
BreakpointManager- конфигурирует точки останова и устанавливает связанные с ними действия и свойства. Открывается через менюDebug→BreakpointManagerи содержит следующие функции:
New Item– установить новую, потребует ввести адрес точки останова, соответствующее положению в окне Ассемблера;
Remove Selected Items– удаление одной или нескольких выделенных точек;
Remove All- удаление всех точек;
Enable All- удаление всех или, с использованием выпадающего окна, группы точек;
Disable All- выключение всех или, с использованием выпадающего окна, группы точек;
Goto Location– открывает адрес точки останова;
Open Property Window- открывает окно свойств точки останова;
Hide/Show Columns– выбирает колонки, отображаемые в окнеBreakpointManager;
Create/Filter Groups– открывает перечень группы точек останова, позволяет редактировать список групп;
Load Configuration– загружает набор точек останова, который был ранее создан и сохранен;
Save Configuration- сохраняет набор точек останова, в противном случае при закрытииCCSон теряется.
Программные точки останова могут устанавливаться в окнах С-кода и дизассемблера, число точек не ограничено. Поставьте курсор в желаемое место установки точки (перед строкой в окне С-кода, на строку – дизассемблера), двойным щелчком мыши зафиксируйте положение точки – должна появиться жирная красная точка. Установка точек останова может также производиться через ToggleBreakpointменю и кнопку, а также через менюDebug→BreakpointManager.
Аппаратные точки останова отличаются от программных тем, что не модифицируют программу, они используют аппаратные ресурсы контроллера и особенно полезны при работе из ПЗУ и для прерывания доступа к памяти (последние не отображаются в окнах С-кода и памяти). Число точек ограничено ресурсами контроллера. Для установки выберите Debug→BreakpointManager; в менюNewвыберитеHardwareBreakpoint; введите адрес программы или памяти, где нужно установить точку, в форме С-выражения или имени или имени символа.
8.2.3 Подключение точек останова к файлам – настройка действия точек останова, позволяющих:
- передавать входные данные из файла на компьютере программиста в буфер на целевой плате;
- передавать выходные данные из буфера на целевой плате в файл на компьютере программиста;
- обновлять данные в окне, например в виде графика.
Использование точек останова для передачи входных данных из файла на компьютере программиста в буфер на целевой плате может быть организовано следующим образом:
1. выбрать File→LoadProgram, файл с именем .out, нажатьOpen;
2. дважды щелкнуть на файле с именем .с в окне ProjectView;
3. выбрать Debug → Breakpoint Manager;
4. установить курсор на строку с функцией main, для которой устанавливается точка останова. Обозначить имя функции.
5. щелкнуть кнопкойToggleBreakpointили нажатьF9 – должна появиться жирная красная точка;
6. в окне Breakpoint Manager, гдедолжна появиться точка останова, выбрать столбецActionи щелкнуть по выпадающему окошку в ряду, где установлена точка. Выбрать действиеReadDatafromFile– появится диалоговое окноParameter.
7. в свободном окошке рядом с надписью Fileдойдите до файла с данными и щелкните. Измените начальный адрес (где должны размещаться данные) и длину (сколько данных считывается каждый раз при достижении точки останова);
8. Нажмите OK. Появится окно управления, которое позволит перемещаться по файлу данных.
Передача выходных данных из буфера на целевой плате в файл на компьютере программиста организуется подобным образом.
8.2.4 Окно наблюдения
Использование окна для наблюдения за изменением величины переменной
При отладке полезно наблюдать за изменением величины переменной в процессе исполнения программы. Окно наблюдения позволяет отслеживать величины локальных, глобальных переменных и С/С++ выражений. Можно также добавить статическую переменную из списка как наблюдаемую.
Для открытия окна наблюдения WatchWindow:
1 выбрать View→WatchWindowили щелкнуть по иконкеWatchWindow; ОкноWatchWindow содержит две таблицыWatchLocalsиWatch1.
В таблице WatchLocalsотладчик автоматически отображает Имя, величину, тип и опциюRadixпеременных, которые являются локальными для исполняемой функции;
В таблице Watch1 отладчик отображает Имя, величину, тип и опциюRadixдля локальных и глобальных переменных и выражений, которые заданы.
2. выбрать File→LoadProgram, загрузить файл с именем .outдля данного проекта;
3. дважды щелкните на файле с именем .с в окне ProjectView;
4. поставить курсор на строку с точкой останова;
5. щелкнуть кнопкой ToggleBreakpointили нажатьF9 – должна появиться жирная красная точка;
6. выбрать View→WatchWindow, выделится область в нижнем правом углу окна. При исполнении программы в этом окне отображаются величины наблюдаемых переменных. По умолчанию в таблицеWatchLocalsотображаются переменные, которые являются локальными для исполняемой функции;
7. если это не main, то выбратьDebug→GoMain;
8. выбрать Debug→Runили нажать кнопку А5 или кнопкуRun; ОкноWatchWindowобновит величину локальных переменных;
9. выбрать таблицу Watch 1;
10. щелкнуть по значку Expression в колонке Name и напечатать имя переменной для наблюдения;
11. щелкнуть по свободному пространству в окне наблюдения для сохранения изменений; величина переменной должна появиться немедленно.
Подобным образом таблице Watch 1 организуется наблюдение за элементами структуры.
8.2.5 Подобным образом организуются окна для просмотра памяти и для просмотра и редактирования содержимого регистров.
8.2.6 Режимы дизассеблера
Режим дизассемблирования. Отладчик автоматически открывает окно дизассемблера при загрузке программы в реальный или симулированный процессор. В окне отображаются дизассемблированные команды и символьная информация, необходимая для отладки. Дизассемблирование - процесс обратный ассемблеру, позволяющий отобразить содержимое памяти в виде ассемблерного кода. Символьная информация состоит из символов и цифробуквенных строк, которые представляют адреса или величины в целевой плате. При пошаговом исполнении программы происходит соответствующее перемещение инструкций в окне дизассеблера.
Смешанный режим позволяет просмотр в одном окне дизассеблированного текста с исходным текстом на С, строки текстов перемежаются. Включение смешанного режима через View→MixedSource/ASM(либо правой кнопкой в окне исходного файла), выбратьMixedModeилиSourceMode.
8.2.7 Вызов стека
Для проверки вызова функций используется окно CallStack. Вызов окна черезView→CallStackили кнопкойViewStack.
Дважды щелкнуть по функции в окне, исходный текст функции отобразится в основном окне. CallStackработает только с текстом на С, причем программа должна иметь главную функцию и стековую секцию, в противном случае появится сообщение:C source is not available.