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

Prikladnoe_programmirovanie_-Konspekt_lektsy

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

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

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

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

Эмуляция строится на основе развитых аппаратных средств, встроенных в процессоры фирмы TI. Эти средства включают:

-систему пограничного сканирования с помощью JTAG-интерфейса,

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

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

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

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

Функция Processor Trace помогает находить до этого невидимые комплексные баги реального времени – гонки между событиями, перемежающиеся в реальном времени глюки, аварии от переполнения стека, ложные прерывания без остановки процессора. Эта функция основана на методе отладки, который действительно не влияет и не изменяет в реальном времени процессы в DSP.

В состав последних версий CCS входит DSP/BIOS – ядро многозадачной операционной системы реального времени с библиотекой стандартных функций управления периферийными устройствами и макропрограмм для каждого из поддерживаемых процессоров, в том числе и процессоров 28-го семейства;

Особенностью Code Composer Studio является возможность совместной отладки многопроцессорной системы с различными ядрами.

Другой особенностью является обмен данными между ПЭВМ и отлаживаемой системой в реальном времени (RTDX, изобретенный в Texas Instruments). Это свойство позволяет наблюдать исполнение программы и отображать изменение переменных графически или передавать поток полученных данных для обработки в такие совместимые программы, как Axcel, LabVIEW или MATLAB. RTDX может запускаться с симулятором, обеспечивая эффективные средства исследования программы и алгоритма еще до изготовления отлаживаемого изделия.

6.3Настройка (Target and Host Setup), интерфейс пользователя

Перед началом работы CCS должен быть сконфигурирован для работы в конкретной среде, для чего необходимо определить конкретный тип контроллера и тип используемого внутрисхемного эмулятора. Для этого необходимо запустить Setup CCStudio v3.3 и в выпадающем меню Family выбрать используемое семейство. Для работы с контроллером TMS320F28335 выбирается C28xx.

41

Далее в выпадающем меню Platform выбрать тип используемого внутрисхемного эмулятора, для работы со встроенным в плату эмулятором выбирается xds100usb.

Далее в окне Available Factory Boards, где остались только записи эмуляторов xds100 для различных контроллеров, выбрать F28335 XDS100 Emulator.

Далее нажать кнопку Add и в окне System Configurations должен появиться выбранный эмулятор.

Далее нажать кнопку Save & Quit и можно запускать CCS с заданной конфигурацией.

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

Лекция №7 «Интегрированная среда программирования Code Composer Studio. Создание программ. Основные инструментальные средства. Язык Ассемблера. Поддержка программирования на С/С++»

7.1 Конфигурация проекта

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

-имена исходных текстов и библиотек объектов;

-опции инструментов генерации кода;

-зависимости вхождения файлов.

7.1.1 Создание проекта Проект создается по следующей процедуре:

1 В меню Project выберите New, откроется окно Project Creation Wizard

2 В поле Project Name введите имя проекта, оно должно быть уникальным.

3 В поле Location текстом или поиском определите каталог, где будет хранится файл проекта. Объектные файлы, которые будут генерироваться компилятором и ассемблером, будут храниться там же. Каждый проект рекомендуется хранить в отдельном каталоге.

4 Выберите тип проекта из выпадающего списка в поле Project Type. Тип Executable (.out) означает, что в проекте будет генерироваться исполняемый файл. Тип Library (.lib) означает, что Вы создаете библиотеку объектов.

5 В поле Target выберите имя используемого процессора – это необходимо при работе с несколькими типами.

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

7.1.2 Добавление файлов в проект Чтобы добавить в созданный проект файлы (например, исходный текст, библиотеку

объектов, командный файл линкера), необходимо:

1 В меню Project выберите Add Files to Project, откроется окно Add Files to Project

2 В окне Add Files to Project определите тип присоединяемых файлов и найдите их браузером.

3 Кнопкой Открыть присоедините выбранный файл к проекту, при этом автоматически обновится окно Project View.

4 Если необходимо удалить файл, выберите правой кнопкой удаляемый файл в окне Project View, затем левой кнопкой Remove from Project в контекстном меню. 7.1.3 Конфигурация проекта

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

42

конфигурациями Debug и Release, дополнительные конфигурации могут быть созданы и добавлены пользователем. Выбор и изменение активной конфигурации производится в окне строки инструментов (левый верхний угол экрана). Создание и добавление новых конфигураций осуществляется через диалоговое окно Add Project Configurations,

выпадающее при выборе Configurations в окне Project View.

7.1.4 Инструмент Project Dependencies (зависимости вхождения файлов) позволяет разбивать сложный проект на подпроекты, а затем собирать окончательный проект из этих составных частей, используя эти зависимости вхождения файлов.

Создание зависимостей осуществляется через диалоговое окно Project Configurations Dependencies, выпадающее при выборе Project Dependencies в окне Project View в

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

7.2 Текстовый редактор

7.2.1 Просмотр и редактирование текста программы Для того чтобы открыть текст программы в основном окне, сделайте двойной

щелчок по имени файла в окне Project View.

Редактор обладает свойством цветовой разметки: ключевые слова, комментарии, ассемблерные директивы и т.п. выделяются различными цветами. Желтая стрелка индицирует положение в программном счетчике.

7.2.2 Персональная настройка текстового окна Редактор позволяет произвести персональную настройку форматирования через

окна Option → Editor Menu → к выбору опций по языку, анализатору цвета, общих установок просмотра.

7.2.3 Использование функциональной обработки текста Редактор имеет дополнительные способности по функциональной обработке

текста:

-сравнение и слияние файлов (окно File);

-поиск и замена (окно Edit).

7.2.4 Автосохранение

Режим автосохранения устанавливается через окна Option → Editor → Properties→ Backup.

7.2.3 Автоподсказка

Редактор использует механизм автоподсказки, называемый CodeSense. Включение автоподсказки через окна Option → Editor → Language→ CodeSense. В перечне слева выделить тип файлов, с которыми будет работа, в окошке рядом убедится, что CodeSense DLL подключена.

CodeSense может использоваться для:

-вывода перечня символов (функций, макросов и т.д.), которые ассоциируются с напечатанным;

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

-получения информации о печатаемых символах.

7.3 Инструменты для создания программы

7.3.1 Используются оптимизирующий С/С++ компилятор, ассемблер, линкер и связанные с ними утилиты.

7.3.2 Настройка комплекта инструментов производится через выпадающее окно Build Options вызываемое через меню в окне Project.

43

7.3.3Инструменты для разработки программ в С/С++ включают:

-С/С++ компилятор - воспринимает исходный код на С/С++ и преобразует его в код на языке Ассеблера;

-Утилиту построения собственной библиотеки;

-Утилиту восстановления имен, искаженных при линковании.

Компилятор может произвести оптимизацию написанного кода для уменьшения размера программы и времени ее исполнения. Оптимизация проводится путем упрощения циклов, конвейеризации, перестройки установок и выражений и размещения переменных в регистрах. Компилятор реализует несколько уровней оптимизации. Дополнительный этап оптимизации может осуществляться после линкования, при этом используется информация о финальных адресах, определенных при линковании.

Инструменты компиляторы описаны в документе с номером spru514, содержащем следующие разделы:

1 Использование компилятора

2 Оптимизация кода

3Линкование С/С++ кода

4Оптимизация после линкования

5Реализация С/С++ в 28х

6Среда реального времени

7Функции и библиотека для поддержки реального времени

8Словарь

7.3.4Инструменты ассемблирования включают:

-Ассемблер - транслирует файлы, написанные на языке ассемблера, в объектные файлы на машинном языке;

-Архиватор – собирает из группы файлов единый архивный файл, называемый библиотекой;

-Линкер – объединяет объектные файлы в один исполняемый объектный модуль;

-Формирователь листингов с абсолютными адресами;

-Формирователь таблицы перекрестных ссылок;

-Преобразователь COFF формата в ASCII-hex и другие форматы.

Инструменты Ассемблера описаны в документе с номером spru513, содержащем следующие разделы:

1 Введение в объектные модули

2 Описание Ассемблера

3 Директивы Ассемблера

4Макросы

5Линкование

6Листеры

7Преобразование в Hex код

8Ассемблер в Заголовочных файлах

9Словарь

7.3.5Ассемблер транслирует файлы, написанные на языке ассемблера, в объектные файлы на машинном языке (в формате COFF). Двухпроходный ассемблер работает следующим образом:

- переводит утверждения исходного текста в текстовый файл; - формирует листинг исходного текста (если требуется);

- позволяет сегментировать код программы на секции и поддерживает счетчик секций программы для каждой секции объектного кода;

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

- ассемблирует условные блоки; - поддерживает макросы, позволяя определять их в строке или в библиотеке.

44

7.3.6 Команды Ассемблера описаны в документе с номером spru430. При описании каждой команды приводится следующая информация:

-Мнемоническая запись;

-Код операции;

-Число циклов для выполнения;

-Используемые операнды;

-Описание операции;

-Значения флагов;

-Указание о возможности повторения;

-Пример использования.

7.4 Построение проекта в CCS

При создании и запуске программы выполняются следующие шаги:

1 Нажмите кнопку Rebuild All, при этом все файлы текущего проекта будут перекомпилированы, переассемблированы и перелинкованы. Сообщение о результатах этой операции появится в статусном окне в нижней части экрана.

2 Созданный .out файл будет размещен в папке Debug текущего проекта. При необходимости изменение места размещения файла выбирается в окне Select Active Configuration.

3 Выберите Load Program в меню File. Выделите программу, которую вы только что перекомпилировали и нажмите Open – программа загрузится в процессор на разрабатываемой плате, а на экране откроется окно дизассембера.

4 Выберите Mixed Source/ASM в меню View – это позволяет одновременно просматривать код программы на С и ассемблере.

5 Щелкните по ассемблерной команде в окне смешанного режима. 6 Нажмите клавишу F1 для получения помощи по этой команде.

7 Выберите Go Main в меню Debug для того, чтобы начать исполнение с основной функции. Исполнение остановится на Main.

8 Выберите Run в меню Debug, чтобы запустить программу.

9 Выберите Holt в меню Debug для того, чтобы закончить исполнение программы.

7.5 Базовое программное обеспечение

7.5.1DSP/BIOS – ядро операционной системы реального времени, ускоряет разработку ПО сложных систем. Реализовано в CCS отдельным модулем.

7.5.2Chip Support Library (CSL) – содержит функции на С для конфигурирования и управления периферийными устройствами контроллера.

Достоинства:

-стандартный протокол верхнего уровня для программирования периферии (типы данных и макросы для настройки конфигурационных регистров, функции операций в периферийных устройствах);

-базовое управление ресурсами через открытые и закрытые функции;

-символьное описание регистров и их полей.

7.5.3Board Support Library (BSL) – содержит дискретные модули на С для конфигурирования и управления периферийными устройствами на плате (так называемые API – интерфейсы, программируемые по применению).

7.5.4DSP Library (DSPLIB) – набор подпрограмм общего назначения, предназначенных для цифровой обработки сигналов или изображений. Подпрограммы оптимизированы на ассемблерном уровне для конкретных семейств DSP и предназначены для использования в применениях реального времени с повышенными требованиями к скорости.

45

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

Отладка может производиться с использованием симулятора или эмулятора. Выбор среды отладки производится в Code Composer Studio Setup.

8.1 Конфигурирование среды для отладки

8.1.1Опции, которые определяют процесс отладки, делятся на четыре группы:

-Debag Properties Tab;

-Directories;

-Program/Project/CIO Load Options;

-Disassembly Style.

Опции Debag Properties Tab (доступны через Options → Customize → Debug Properties – позволяют отключить при отладке опции, устанавливаемые по умолчанию):

Open the Disassembly Window automatically – включена по умолчанию, если отключить, то окно дизассемблера при загрузке программы не появляется;

Perform GO Main automatically – отключена по умолчанию, если включить, программа при загрузке установится на символ main;

Connect to the target when a control window is opened – отключена по умолчанию, не включается при написании программ и при наличии проблем в соединении с целевой платой;

Remove remaining debug state at connect – включена по умолчанию, рекомендуется отключать для предотвращения повторных попыток удалить точки останова при восстановлении соединения с целевой платой;

Step over functions without debug information when source stepping – включена по умолчанию, позволяет при отладке в пошаговом режиме перешагивать функции, не имеющие информации об ошибках;

Animation speed – включена по умолчанию на 0, устанавливает минимальное время (в секундах) между точками останова.

Опции Directories (доступны через Options → Customize → Directories –

позволяют указать путь к файлу исходной программы, подлежащей отладке): Directories – в окне отображается путь к файлу;

New – для добавления нового директория к перечню, отображенному в окне; Delete - для удаления выделенного директория из перечня, отображенного в окне; Move Up/Move Down - для перемещения выделенного директория по перечню,

отображенному в окне;

Look at subfolders - для поиска в подкаталогах выделенного пути;

Default File I/O Directory – для определения директория, устанавливаемого по умолчанию.

Опции Program/Project/CIO Load Options (доступны через Options → Customize

→ Program/Project/CIO – позволяют выбрать программу, загружаемую по умолчанию):

Perform verification during Program Load – включена по умолчанию, в результате

CCS считывает выбранную память, чтобы убедиться в правильной загрузке программы; Load Program after Build – кода включена, исполняемый файл загружается сразу

после построения проекта;

Do Not Set CIO Breakpoint at Load – если включить, то можно не определять точку останова по загрузке;

Do Not Set End of Program Breakpoint at Load – если включить, то можно не определять точку останова по концу программы;

Disable All Breakpoints When Loading New Program - если включить, то перед загрузкой новой программы удаляются все старые точки останова;

46

Open Dependent Projects When Loading Projects – для открытия подпроектов;

Do Not Scan Dependencies When Loading Projects – для отключения сканирования вхождения файлов (ускоряет открытие проекта);

Auto-Save Projects before Build – для автосохранения проекта перед началом его построения (компиляции);

Open Project Window on Startup – для открытия окна активного проекта при запуске

CCS;

Maximum # of lines – устанавливает число строк, отображаемых в таблице Stdout окна Output Window – по умолчанию 256.

Опции Disassembly Style (доступны через Options → Disassembly Style –

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

8.1.2 Приближение симулятора к поведению реальной целевой платы производится установкой соответствующих опций в следующих 3 разделах.

8.1.3 Разметка памяти – добавление новых секторов памяти через Options → Memory Map через следующие опции окна Memory Map:

Enable Memory Mapping – включение обеспечивает контроль разметки памяти, в противном случае вся RAM целевой платы считается разрешенной;

Starting Address – задание стартового адреса нового сектора; Length – задание длины нового сектора;

Attributes – задание характеристик чтения/записи для нового сектора; Access Size (bits) – определяет размер доступа к целевому процессору; Memory Map List – отображает список размеченных в памяти секторов; Add – добавляет новый сектор к списку;

Delete – удаляет выделенный сектор из списка;

Reset – Восстанавливает в списке вид по умолчанию.

8.1.4 Загрузка программы

Созданный выходной файл (.out в формате COFF) должен быть загружен в реальный или симулированный процессор до исполнения. Загрузка программы и данных производится по адресам, указанным в объектном файле. Символы одновременно загружаются в символьную таблицу, поддерживаемую отладчиком на компьютере программиста. Загрузка объектного файла может быть произведена через File → Load Program с выделением загружаемого файла.

8.2 Основные инструменты отладки

8.2.1 Управление запуском программы может производиться следующими командами (через меню Debug):

Main – исполнение до функции Main запускается выбором Debug → Go Main; Run – после остановки можно продолжить исполнение нажатием кнопки Run; Run to Cursor – курсор устанавливается на желаемое место в программе, затем

программа запускает нажатием этой кнопки;

Set PC to Cursor – тоже с установкой курсора в программном счетчике

Animate – программа исполняется с задержках в точках останова на заданное время, устанавливаемое через Options → Customize);

Halt – остановка программы в любой момент нажатием на кнопку. Пошаговый режим исполнения возможен только после останова. Пошаговое

исполнение управляется кнопками. Возможны три вида шагов:

47

-Single Step или Step Into - выполняет одно одиночное утверждение и останавливает исполнение;

-Step over – выполняет функцию и останавливает;

-Step out – выполняет текущую подпрограмму и возвращает вызванную функцию.

8.2.2 Точки останова (Breakpoints)

Является важнейшим инструментом отладки, служат для остановки исполнения программы в заданном месте с целью проверки правильности ее исполнения по значениям переменных, состоянию стека и т.д. Могут устанавливаться как в окне исходного текста, так и в окне дизассемблера. Отладка с точками останова нарушает работу в реальном времени и служит для проверки алгоритма.

Breakpoint Manager - конфигурирует точки останова и устанавливает связанные с ними действия и свойства. Открывается через меню Debug → Breakpoint Manager и содержит следующие функции:

New Item – установить новую, потребует ввести адрес точки останова, соответствующее положению в окне Ассемблера;

Remove Selected Items – удаление одной или нескольких выделенных точек; Remove All - удаление всех точек;

Enable All - удаление всех или, с использованием выпадающего окна, группы точек; Disable All - выключение всех или, с использованием выпадающего окна, группы

точек;

Goto Location – открывает адрес точки останова;

Open Property Window - открывает окно свойств точки останова;

Hide/Show Columns – выбирает колонки, отображаемые в окне Breakpoint Manager; Create/Filter Groups – открывает перечень группы точек останова, позволяет

редактировать список групп;

Load Configuration – загружает набор точек останова, который был ранее создан и сохранен;

Save Configuration - сохраняет набор точек останова, в противном случае при закрытии CCS он теряется.

Программные точки останова могут устанавливаться в окнах С-кода и дизассемблера, число точек не ограничено. Поставьте курсор в желаемое место установки точки (перед строкой в окне С-кода, на строку – дизассемблера), двойным щелчком мыши зафиксируйте положение точки – должна появиться жирная красная точка. Установка точек останова может также производиться через Toggle Breakpoint меню и кнопку, а

также через меню Debug → Breakpoint Manager.

Аппаратные точки останова отличаются от программных тем, что не модифицируют программу, они используют аппаратные ресурсы контроллера и особенно полезны при работе из ПЗУ и для прерывания доступа к памяти (последние не отображаются в окнах С-кода и памяти). Число точек ограничено ресурсами контроллера. Для установки выберите Debug → Breakpoint Manager; в меню New выберите Hardware Breakpoint; введите адрес программы или памяти, где нужно установить точку, в форме С- выражения или имени или имени символа.

8.2.3 Подключение точек останова к файлам – настройка действия точек останова, позволяющих:

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

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

-обновлять данные в окне, например в виде графика.

Использование точек останова для передачи входных данных из файла на компьютере программиста в буфер на целевой плате может быть организовано следующим образом:

48

1.выбрать File → Load Program, файл с именем .out, нажать Open;

2.дважды щелкнуть на файле с именем .с в окне Project View;

3.выбрать Debug → Breakpoint Manager;

4.установить курсор на строку с функцией main, для которой устанавливается точка останова. Обозначить имя функции.

5.щелкнуть кнопкой Toggle Breakpoint или нажать F9 – должна появиться жирная красная точка;

6.в окне Breakpoint Manager, где должна появиться точка останова, выбрать столбец Action и щелкнуть по выпадающему окошку в ряду, где установлена точка. Выбрать действие Read Data from File – появится диалоговое окно Parameter.

7.в свободном окошке рядом с надписью File дойдите до файла с данными и щелкните. Измените начальный адрес (где должны размещаться данные) и длину (сколько данных считывается каждый раз при достижении точки останова);

8.Нажмите OK. Появится окно управления, которое позволит перемещаться по файлу данных.

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

8.2.4 Окно наблюдения Использование окна для наблюдения за изменением величины переменной

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

Для открытия окна наблюдения Watch Window:

1 выбрать View → Watch Window или щелкнуть по иконке Watch Window; Окно

Watch Window содержит две таблицы Watch Locals и Watch 1.

Втаблице Watch Locals отладчик автоматически отображает Имя, величину, тип и опцию Radix переменных, которые являются локальными для исполняемой функции;

Втаблице Watch 1 отладчик отображает Имя, величину, тип и опцию Radix для локальных и глобальных переменных и выражений, которые заданы.

2. выбрать File → Load Program, загрузить файл с именем .out для данного проекта; 3. дважды щелкните на файле с именем .с в окне Project View;

4. поставить курсор на строку с точкой останова;

5. щелкнуть кнопкой Toggle Breakpoint или нажать F9 – должна появиться жирная красная точка;

6. выбрать View → Watch Window, выделится область в нижнем правом углу окна. При исполнении программы в этом окне отображаются величины наблюдаемых переменных. По умолчанию в таблице Watch Locals отображаются переменные, которые являются локальными для исполняемой функции;

7. если это не main, то выбрать Debug → Go Main;

8. выбрать Debug → Run или нажать кнопку А5 или кнопку Run; Окно Watch Window обновит величину локальных переменных;

9. выбрать таблицу Watch 1;

10. щелкнуть по значку Expression в колонке Name и напечатать имя переменной для наблюдения;

11. щелкнуть по свободному пространству в окне наблюдения для сохранения изменений; величина переменной должна появиться немедленно.

Подобным образом таблице Watch 1 организуется наблюдение за элементами структуры.

8.2.5 Подобным образом организуются окна для просмотра памяти и для просмотра и редактирования содержимого регистров.

49

8.2.6 Режимы дизассеблера Режим дизассемблирования. Отладчик автоматически открывает окно

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

Смешанный режим позволяет просмотр в одном окне дизассеблированного текста с исходным текстом на С, строки текстов перемежаются. Включение смешанного режима через View → Mixed Source/ASM (либо правой кнопкой в окне исходного файла), выбрать

Mixed Mode или Source Mode. 8.2.7 Вызов стека

Для проверки вызова функций используется окно Call Stack. Вызов окна через View → Call Stack или кнопкой View Stack.

Дважды щелкнуть по функции в окне, исходный текст функции отобразится в основном окне. Call Stack работает только с текстом на С, причем программа должна иметь главную функцию и стековую секцию, в противном случае появится сообщение: C source is not available.

8.3 Отладка в реальном времени

СCS включает несколько опций для режима отладки в реальном времени. Real-Time Mode (режим реального времени) позволяет выполнение критичных по

времени прерываний в приоритетном коде в то время, когда процессор остановлен в фоновом коде, можно также прерывать выполнение одного прерывания, продолжая обслуживать остальные.

Чтобы включить режим отладки в реальном времени:

1.выбрать Debug → Real-time Mode, в нижней части окна должна появиться надпись “POLITE”;

2.выбрать View → Real-Time Refresh Options, установить интервал обновления информации в окне наблюдения. Галочка в окошке Global Continuous Refresh распространит этот интервал на все окна, где отображаются данные, в том числе память, графики и наблюдательные окна;

3.нажать OK;

4.выбрать View → Registers → CPU Registers, откроется окно, отображающее состояние регистров CPU;

5.дважды щелкнуть по окошку величины и откорректировать величину регистра прерываний(..IER), чтобы обозначить прерывание как Real-Time;

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

Rude Real-Time Mode (жесткий режим реального времени) – для отладки высокоприоритетных прерываний или других частей кода, которые особо критичны ко времени и должны исполняться за минимальное или точно заданное число тактов.

50

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