Разработка программного обеспечения встраиваемых микропроцессорных систем, проектируемых на базе расширяемых вычислительных платформ семейства Zynq 7000 AP SoC фирмы Xilinx. Часть 8

PDF версия

Все статьи цикла.

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

Прежде чем приступить непосредственно к отладке разрабатываемого программного приложения с использованием выбранных аппаратных средств, рекомендуется подключить загрузочный кабель к персональному компьютеру (ПК) и применяемому инструментальному модулю, а также выполнить необходимую коммутацию портов этого модуля, задействованных в отлаживаемой прикладной программе, с соответствующими портами ПК. Затем нужно загрузить сгенерированную конфигурационную последовательность аппаратной части проектируемой микропроцессорной системы в кристалл расширяемой вычислительной платформы, установленный на используемой отладочной плате. Подключение инструментального отладочного модуля к ПК, подготовка к записи конфигурационной информации в кристалл семейства Zynq‑7000 AP SoC и выполнение этого процесса в интегрированной среде разработки программного обеспечения встраиваемых микропроцессорных систем Xilinx SDK были подробно рассмотрены в [21]. После успешного завершения конфигурирования программируемой логики PL кристалла расширяемой вычислительной платформы, представленного на отладочной плате, следует открыть вкладку основного окна средств Xilinx SDK, содержащую исходный текст главного модуля отлаживаемой прикладной программы [18, 19]. Если эта вкладка уже была открыта ранее, то для визуализации исходного текста разрабатываемого программного приложения достаточно расположить курсор на ее названии и щелкнуть левой кнопкой мыши.

Далее нужно во встроенной панели Project Explorer основного окна интегрированной среды разработки программного обеспечения для встраиваемых микропроцессорных систем выделить строку, в которой представлено название раздела отлаживаемого проекта прикладной программы. Для активизации процесса отладки разрабатываемого программного приложения можно воспользоваться одним из трех способов, поддерживаемых средствами Xilinx SDK. Первый способ основан на применении соответствующих команд всплывающего меню Run, которое открывается при выборе одноименного пункта главного меню основного окна интегрированной среды разработки программного обеспечения. В указанном всплывающем меню представлены две команды запуска процесса отладки разрабатываемой прикладной программы — Debug и Debug As. При выборе команды Debug на экране появляется диалоговая панель с заголовком Confirm Perspective Switch, чей вид показан на рис. 1. Открывшаяся диалоговая панель информирует о возможности изменения структуры основного окна интегрированной среды разработки программного обеспечения к виду, обеспечивающему наиболее эффективное управление процессом отладки. Рекомендуется утвердительно ответить на запрос подтверждения модификации основного окна средств Xilinx SDK, который содержится в диалоговой панели Confirm Perspective Switch.

Запуск процесса отладки прикладной программы с помощью команды Debug

Рис. 1. Запуск процесса отладки прикладной программы с помощью команды Debug

При использовании команды Debug As на экран выводится всплывающее меню следующего уровня, чей вид изображен на рис. 2. Открывшееся меню предоставляет возможность выбора метода отладки разработанного программного приложения. Запуск процесса отладки прикладной программы на сконфигурированной аппаратной платформе проектируемой встраиваемой системы с помощью средств GNU Debugger осуществляется командой Launch on Hardware (GDB). Активизация рассматриваемого процесса, выполняемого с применением инструментального модуля и отладчика System Debugger, производится командой Launch on Hardware (System Debugger). Если в разрабатываемом проекте программного обеспечения представлено несколько вариантов конфигурации отладочных средств [22], то после выбора требуемого метода отладки появляется диалоговая панель с заголовком Launch Configuration Selection. В списке, отображаемом в открывшейся диалоговой панели, необходимо выделить строку с названием применяемого варианта конфигурации отладочных инструментов и подтвердить сделанный выбор нажатием клавиши OK. В случае единственного варианта конфигурации отладочных средств диалоговая панель Launch Configuration Selection не выводится (рис. 2).

Запуск процесса отладки программного приложения с помощью команды Debug As

Рис. 2. Запуск процесса отладки программного приложения с помощью команды Debug As

Второй способ запуска процесса отладки программного приложения на аппаратной платформе проектируемой встраиваемой системы заключается в использовании кнопок быстрого доступа, расположенных на оперативной панели управления основного окна интегрированной среды разработки программного обеспечения Xilinx SDK. Кнопка кнопка дублирует команду Debug, которая представлена во всплывающем меню Run. Нажатие кнопки быстрого доступа кнопка, совмещенной с кнопкой кнопка, открывает всплывающее меню, содержащее рассмотренные выше команды запуска процесса отладки. При наличии нескольких вариантов конфигурации отладочных средств после выбора одной из этих команд на экране отображается диалоговая панель с заголовком Launch Configuration Selection (рис. 3).

Запуск процесса отладки прикладной программы с помощью кнопок быстрого доступа

Рис. 3. Запуск процесса отладки прикладной программы с помощью кнопок быстрого доступа

Третий способ запуска процесса отладки прикладной программы предоставляет контекстно-зависимое всплывающее меню, которое открывается щелчком правой кнопкой мыши при расположении курсора в строке с названием разрабатываемого проекта программного приложения во встроенной панели Project Explorer. В открывшемся меню следует выбрать команду Debug As, а затем во всплывающем меню следующего уровня указать метод выполняемой отладки прикладной программы (рис. 4).

Запуск процесса отладки программного приложения с помощью контекстно-зависимого всплывающего меню

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

После этого появляется диалоговая панель Confirm Perspective Switch, предоставляющая возможность изменить структуру основного окна средств Xilinx SDK для обеспечения большей информативности и эффективности процесса отладки. При утвердительном ответе на запрос, содержащийся в этой диалоговой панели, основное окно интегрированной среды разработки программного обеспечения приобретает вид, представленный на рис. 5.

В верхней части основного окна средств Xilinx SDK появляются дополнительные вкладки, позволяющие оперативно управлять процессом отладки и контролировать выполнение разрабатываемой прикладной программы. Состав и количество дополнительных вкладок определяется разработчиком. По умолчанию автоматически открываются вкладки Debug, Variables, Breakpoints, Registers, Modules и XMD Console, которые соответственно предоставляют сведения о состоянии активированного процесса отладки, текущих значениях переменных, заданных точках останова, содержимом регистров микропроцессорного ядра, загруженных модулях отлаживаемого программного приложения, а также выходную информацию, формируемую прикладной программой. Для получения дополнительных сведений в процессе отладки разрабатываемого программного приложения следует открыть соответствующие вкладки, воспользовавшись командой Show View всплывающего меню Window, как показано на рис. 5. При выполнении указанной команды на экран выводится всплывающее меню следующего уровня, которое содержит список всех доступных вкладок основного окна интегрированной среды разработки программного обеспечения. После выбора в этом списке названия требуемой вкладки она отображается в отведенной области основного окна средств Xilinx SDK.

Структура основного окна средств Xilinx SDK, оптимизированная для процесса отладки программ

Рис. 5. Структура основного окна средств Xilinx SDK, оптимизированная для процесса отладки программ

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

 

Отладка разрабатываемого программного приложения на аппаратной платформе проектируемой микропроцессорной системы в пошаговом режиме

Интегрированная среда разработки программного обеспечения для встраиваемых микропроцессорных систем Xilinx SDK предоставляет возможность осуществлять процесс отладки прикладной программы в пошаговом или непрерывном режиме, а также совмещать эти режимы. В пошаговом режиме выполнение операторов исходного кода отлаживаемого программного приложения поочередно инициируется разработчиком. На каждом шаге осуществляется выполнение операций, соответствующих только одной (текущей) строке исходного текста прикладной программы, в которой установлен указатель очередного исполняемого оператора. Пошаговый режим позволяет контролировать значения переменных, используемых в тексте программы на языке C/C++, содержимое регистров микропроцессорного ядра и оперативной памяти после выполнения каждого оператора исходного кода разрабатываемого программного приложения, но требует достаточно большого количества времени. Поэтому данный режим целесообразно применять при небольшом объеме исходного текста отлаживаемой прикладной программы и отсутствии в нем операторов циклов.

Для осуществления процесса отладки программного приложения в пошаговом режиме с самого начала выполнения его главного модуля необходимо в используемой конфигурации отладочных средств пакета Xilinx SDK установить индикатор состояния параметра Stop at main() when debugging [22] в положение «Включено», отмеченное маркером. При этом процесс функционирования отлаживаемой прикладной программы автоматически приостанавливается на первом выполняемом операторе главного модуля main(). В соответствующей строке исходного текста этого модуля устанавливается указатель очередного исполняемого оператора. Данный указатель выполнен в форме пиктограммы кнопка, отображаемой в первой колонке вкладки, содержащей исходный текст главного модуля отлаживаемого программного приложения. Кроме того, строка исходного кода, в которой расположен данный указатель, по умолчанию выделяется цветом, указанным в настройках интегрированной среды разработки программного обеспечения, как показано на рис. 6.

Выполнение отладки программного приложения в пошаговом режиме с помощью команд всплывающего меню Run

Рис. 6. Выполнение отладки программного приложения в пошаговом режиме с помощью команд всплывающего меню Run

Выполнение строки исходного кода прикладной программы, отмеченной указателем кнопка, при отладке в пошаговом режиме реализуется с помощью команд Step Over и Step Into из выпадающего меню Run или кнопок быстрого доступа кнопка и кнопка, находящихся на оперативной панели управления основного окна средств Xilinx SDK (рис. 6). Аналогичные команды содержатся и в контекстно-зависимом всплывающем меню, которое открывается щелчком правой кнопки мыши при расположении курсора в строке с названием главного модуля прикладной программы, имеющейся на вкладке Debug (рис. 7).

Осуществление отладки программы в пошаговом режиме с помощью команд контекстно-зависимого всплывающего меню

Рис. 7. Осуществление отладки программы в пошаговом режиме с помощью команд контекстно-зависимого всплывающего меню

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

Для того чтобы проконтролировать значения переменных отлаживаемого программного приложения на каждом шаге его выполнения, необходимо открыть (или сделать видимой) вкладку Variables (рис. 8).

Контроль значений переменных при отладке программного приложения

Рис. 8. Контроль значений переменных при отладке программного приложения

Информация о текущих значениях переменных отлаживаемой прикладной программы отображается на этой вкладке в форме таблицы, которая содержит две колонки с названиями Name и Value. В ячейках колонки Name представлены идентификаторы используемых переменных, а в соответствующих ячейках столбца Value — значения этих переменных на очередном шаге выполнения программного приложения. Разработчику предоставляется возможность выбора формата представления значений каждой переменной, который обеспечивает максимальную наглядность. Изменение формата отображения текущих значений переменных осуществляется с помощью команды Format контекстно-зависимого всплывающего меню, которое открывается щелчком правой кнопки мыши при расположении курсора на соответствующей строке таблицы. При выполнении этой команды на экране появляется всплывающее меню следующего уровня, которое содержит список возможных вариантов представления значений переменных. Текущие значения переменных могут отображаться в десятичном (Decimal), шестнадцатеричном (Hexadecimal), восьмеричном (Octal) и двоичном (Binary) формате. По умолчанию предлагается вариант Default, при котором используется формат, соответствующий типу переменной. После выбора требуемого варианта в открывшемся списке текущее значение переменной в таблице преобразуется к виду, соответствующему указанному формату.

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

Контроль и редактирование содержимого регистров микропроцессорного ядра при отладке программы

Рис. 9. Контроль и редактирование содержимого регистров микропроцессорного ядра при отладке программы

Информация о содержимом регистров микропроцессорного ядра приведена в виде таблицы, которая имеет ту же структуру, что и таблица, расположенная на вкладке Variables. Ячейки, входящие в состав колонки Name, содержат условные обозначения регистров. Текущие значения, записанные в эти регистры, отображаются в соответствующих ячейках столбца Value. Формат представления содержимого регистров в этой таблице выбирается тем же способом, что и формат отображения значений переменных.

В процессе отладки разрабатываемого программного приложения предоставляется возможность не только наблюдать текущие значения переменных и содержимого регистров микропроцессорного ядра, но и принудительно изменять эти значения. Чтобы установить требуемое значение переменной или записать его в регистр, необходимо выделить соответствующую строку таблицы на вкладке Variables или Registers и щелчком правой кнопки мыши открыть контекстно-зависимое всплывающее меню. В нем нужно выбрать строку Change Value, как показано на рис. 9. Затем на экране появляется диалоговая панель с заголовком Set Value, чей вид представлен на рис. 9. Открывшаяся диалоговая панель содержит поле редактирования Enter new value for, в котором отображается значение переменной или содержимое выбранного регистра микропроцессорного ядра на текущем шаге выполнения отлаживаемой прикладной программы. Модификация этого значения осуществляется с помощью клавиатуры. Новое значение присваивается переменной или записывается в регистр при нажатии клавиши OK, находящейся в нижней части диалоговой панели Set Value.

Кроме принудительной установки необходимых значений выбранных переменных и содержимого указанных регистров микропроцессорного ядра, отладочные средства пакета Xilinx SDK позволяют заблокировать изменение состояния заданных переменных и регистров в процессе выполнения программного приложения. Такая блокировка реализуется с помощью команды Disable контекстно-зависимого всплывающего меню (рис. 8, 9). Чтобы разблокировать модификацию значений указанных переменных и регистров в процессе отладки программы, следует повторно воспользоваться этой командой, вызвав контекстно-зависимое всплывающее меню для соответствующих строк таблицы, расположенной на вкладке Variables или Registers.

Для контроля и изменения содержимого ячеек оперативной памяти проектируемой микропроцессорной системы следует, используя команду Show View всплывающего меню Window (рис. 5), открыть вкладку Memory, которая по умолчанию отображается в нижней части основного окна интегрированной среды разработки программного обеспечения (рис. 10).

Контроль и редактирование содержимого оперативной памяти при отладке программного приложения

Рис. 10. Контроль и редактирование содержимого оперативной памяти при отладке программного приложения

Для отображения содержимого ячеек интересующей области оперативной памяти разрабатываемой встраиваемой системы нужно воспользоваться кнопкой кнопка, находящейся в верхней части этой вкладки. При нажатии указанной кнопки на экран выводится диалоговая панель с заголовком Monitor Memory, чей вид представлен на рис. 10. В диалоговой панели есть поле редактирования значения базового адреса отображаемого региона оперативной памяти. Начальный адрес интересующей области ОЗУ может быть задан с помощью клавиатуры как в виде числового значения в шестнадцатеричном, десятичном, восьмеричном или двоичном формате представления, так и в виде выражения. После определения значения базового адреса на вкладке Memory появляется новая страница, в которой в форме таблицы отображается содержимое ячеек выбранной области оперативной памяти. В заголовке этой страницы приводится заданное значение начального адреса контролируемого региона ОЗУ и формат представления записанных данных. В первой колонке и в верхней строке отображаемой таблицы указаны адреса ячеек, а в остальных — значения, содержащиеся в соответствующих ячейках оперативной памяти на текущем шаге выполнения отлаживаемой прикладной программы. По умолчанию данные ОЗУ, приведенные в рассматриваемой таблице, представлены в шестнадцатеричном формате. Если необходимо отобразить значения этих данных в другом формате, то следует воспользоваться страницей New Renderings вкладки Memory, чей вид демонстрирует рис. 11. На указанной странице имеется список возможных вариантов представления информации, содержащейся в ячейках выбранной области оперативной памяти. Отладочные средства пакета Xilinx SDK предоставляют возможность отображения значений, записанных в ОЗУ проектируемой микропроцессорной системы, в следующих форматах:

  • шестнадцатеричном (Hex);
  • символьном (ASCII);
  • целочисленном со знаком (Signed Integer);
  • целочисленном без знака (Unsigned Integer);
  • шестнадцатеричном целочисленном (Hex Integer).
Переход к выполнению указанной строки исходного кода при отладке программы

Рис. 11. Переход к выполнению указанной строки исходного кода при отладке программы

В предлагаемом списке нужно щелчком левой кнопки мыши выделить строку, содержащую название требуемого варианта представления данных, после чего нажать клавишу Add Rendering(s), которая находится в правой части страницы New Renderings (рис. 11). В результате выполненных действий на вкладке Memory добавляется новая страница, в которой содержимое ячеек интересующей области оперативной памяти отображается в выбранном формате.

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

На практике, как правило, нет необходимости в проверке текущего состояния переменных, регистров и оперативной памяти после выполнения каждого шага отлаживаемой прикладной программы на протяжении всего процесса ее функционирования. Для сокращения временных затрат отдельные фрагменты исходного кода програм-много приложения, в которых вероятность возникновения ошибок ничтожно мала, целесообразно выполнять в непрерывном режиме, после чего продолжить процесс отладки в пошаговом режиме. Таким образом, критические фрагменты исходного кода прикладной программы отлаживаются в пошаговом режиме, а остальные — в непрерывном. Для этой цели в отладочных средствах пакета Xilinx SDK предусмотрена команда Run to Line, которая обеспечивает в процессе отладки возможность перехода от текущей выполняемой строки исходного кода к заданной с исполнением пропускаемого фрагмента в непрерывном режиме. Указанная команда представлена во всплывающем меню Run и дублируется кнопкой быстрого доступа кнопка, расположенной на оперативной панели управления основного окна интегрированной среды разработки программного обеспечения. Чтобы выполнить фрагмент исходного кода программы с текущей позиции до строки, с которой нужно продолжить пошаговый режим отладки программного приложения, необходимо выделить эту строку, указав курсором и щелкнув левой кнопкой мыши, и воспользоваться командой Run to Line или кнопкой кнопка, как показано на рис. 11.

В ряде случаев целесообразно проследить работу отлаживаемой прикладной программы на уровне инструкций ассемблера микропроцессорного ядра. Для этого следует с помощью команды Show View всплывающего меню Window (рис. 5) открыть вкладку Disassembly, чей вид демонстрирует рис. 11. На ней отображен исходный текст отлаживаемого программного приложения на языке ассемблера, сформированный в результате дизассемблирования исполняемого кода. На вкладке Disassembly очередная исполняемая инструкция выделена цветом и отмечена указателем кнопка, который устанавливается в крайней левой позиции строки.

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

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

 

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

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

Для автоматического запуска процесса отладки программного приложения в непрерывном режиме следует в используемой конфигурации отладочных средств пакета Xilinx SDK переключить индикатор состояния параметра Stop at main() when debugging [22] в сброшенное положение. В этом случае при активизации процесса отладки выполнение прикладной программы автоматически приостанавливается на строке исходного кода, которая содержит первую обнаруженную контрольную точку. После проверки значений переменных, содержимого регистров микропроцессорного ядра и оперативной памяти, а также внесения всех необходимых изменений процесс функционирования программного приложения может быть продолжен в непрерывном режиме с помощью команды Resume, которая представлена во всплывающем меню Run (рис. 11) и контекстно-зависимом всплывающем меню (рис. 7). Указанная команда также дублируется кнопкой быстрого доступа кнопка, расположенной на оперативной панели управления интегрированной среды разработки программного обеспечения для встраиваемых микропроцессорных систем.

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

В случае использования в процессе отладки нескольких точек останова рекомендуется, прежде всего, на вкладке основного окна интегрированной среды разработки програм-много обеспечения, содержащей исходный текст прикладной программы, включить режим отображения номеров строк, если он не был включен ранее. Идентификация контрольных точек, установленных в отлаживаемом программном приложении, осуществляется по номерам строк исходного кода, в которых они зафиксированы. Для включения режима нумерации строк исходного текста отлаживаемой программы следует расположить курсор в крайней левой позиции любой строки рассматриваемой вкладки основного окна средств Xilinx SDK и щелкнуть правой кнопкой мыши. Затем в открывшемся контекстно-зависимом всплывающем меню, чей вид приведен на рис. 12, нужно выбрать команду Show Line Numbers. После выполнения этой команды на вкладке, содержащей исходный код отлаживаемого программного приложения, появится колонка номеров строк.

Установка безусловных точек прерывания в отлаживаемой программе

Рис. 12. Установка безусловных точек прерывания в отлаживаемой программе

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

Для установки условной контрольной точки в требуемой строке исходного текста программного приложения следует также вызвать контекстно-зависимое всплывающее меню, в котором необходимо воспользоваться командой Add Breakpoint. При выборе этой команды на экран выводится диалоговая панель с заголовком Properties for C/C++ Line Breakpoint, чей вид представлен на рис. 13.

Установка условных точек прерывания в отлаживаемой программе

Рис. 13. Установка условных точек прерывания в отлаживаемой программе

Открывшаяся диалоговая панель предоставляет возможность определения параметров устанавливаемой точки прерывания. В поле редактирования значения параметра Line Number отображается номер строки исходного текста отлаживаемой прикладной программы, выбранной для установки контрольной точки. Индикатор состояния параметра Enabled позволяет управлять статусом формируемой точки останова на различных итерациях процесса отладки. При создании новой условной точки прерывания этот индикатор автоматически устанавливается во включенное положение, соответствующее ее активному состоянию. Для блокировки этой контрольной точки следует переключить индикатор состояния параметра Enabled в сброшенное положение. Заблокированная точка останова отмечается маркером кнопка.

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

Значение параметра Ignore count целесообразно определять для контрольных точек, устанавливаемых в строках исходного текста, которые расположены в теле операторов цикла. В поле редактирования значения этого параметра можно указать число итераций цикла, которые будут игнорироваться до приостановки выполнения отлаживаемого программного приложения. Таким образом, предоставляется возможность контроля значений переменных и содержимого регистров и оперативной памяти только на определенных итерациях в циклически повторяемых фрагментах прикладной программы. Установив необходимые значения параметров для создаваемой условной контрольной точки, следует подтвердить их нажатием клавиши OK, расположенной в нижней части диалоговой панели Properties for C/C++ Line Breakpoint.

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

Отображение информации о контрольных точках

Рис. 14. Отображение информации о контрольных точках

Указанная вкладка не только отображает информацию обо всех установленных точках прерывания, но и предоставляет возможность их оперативной блокировки и разблокировки в процессе отладки прикладной программы. Для этой цели в каждой строке, содержащей сведения о соответствующей точке останова, предусмотрены индикаторы состояния, которые выполняют ту же функцию, что и параметр Enabled в диалоговой панели Properties for C/C++ Line Breakpoint. Кроме того, дополнительные возможности управления контрольными точками обеспечивает контекстно-зависимое всплывающее меню, открываемое щелчком правой кнопки мыши при расположении курсора на соответствующей строке вкладки Breakpoints. Удаление выбранной точки прерывания осуществляется командой Remove из этого меню или кнопкой быстрого доступа кнопка. Чтобы удалить все установленные контрольные точки, следует использовать команду Remove All контекстно-зависимого всплывающего меню или кнопку быстрого доступа кнопка. Для обхода всех точек прерывания нужно зафиксировать в нажатом положении кнопку кнопка, расположенную на оперативной панели управления основного окна интегрированной среды разработки программного обеспечения.

Если в составе разрабатываемого программного приложения применяется значительное количество циклических конструкций с большим числом итераций, а также условных операторов, то в большинстве случаев эффективен смешанный режим выполнения процесса его отладки. Для этого вначале устанавливаются контрольные точки, и запускается процесс выполнения прикладной программы в непрерывном режиме. Затем, при необходимости, после остановки в контрольной точке процесс выполнения программного приложения возобновляется в пошаговом режиме с помощью команд Step Over и Step Into из выпадающего меню Run или кнопок быстрого доступа кнопка и кнопка. Далее в любой момент можно вновь переключиться в непрерывный режим, воспользовавшись командой Resume или кнопкой быстрого доступа кнопка.

Продолжение следует

Литература
  1. Зотов В. Расширение семейства программируемых систем на кристалле Zynq‑7000 AP SoC // Компоненты и технологии. 2013. № 12. 2014. № 1.
  2. Zynq‑7000 All Programmable SoC Overview. Advance Product Specification. — Xilinx, 2013.
  3. Zynq‑7000 All Programmable SoC (XC7Z010, XC7Z015, and XC7Z020): DC and AC Switching Characteristics. — Xilinx, 2013.
  4. Zynq‑7000 All Programmable SoC (XC7Z030, XC7Z045, and XC7Z100): DC and AC Switching Characteristics. — Xilinx, 2013.
  5. Zynq‑7000 All Programmable SoC Technical Reference Manual. — Xilinx, 2013.
  6. Zynq‑7000 All Programmable SoC: Concepts, Tools, and Techniques (CTT) A Hands-On Guide to Effective Embedded System Design. — Xilinx, 2013.
  7. Zynq‑7000 All Programmable SoC Software Developers Guide. — Xilinx, 2013.
  8. Zynq‑7000 All Programmable SoC PCB Design and Pin Planning Guide. — Xilinx, 2013.
  9. 7 Series FPGAs and Zynq‑7000 All Programmable SoC XADC Dual 12‑Bit 1 MSPS Analog-to-Digital Converter User Guide. — Xilinx, 2012.
  10. Зотов В. Средства автоматизированного проектирования и этапы разработки встраиваемых микропроцессорных систем на базе расширяемых процессорных платформ семейства Zynq‑7000 AP SoC // Компоненты и технологии. 2014. № 2–3.
  11. Зотов В. Проектирование встраиваемых микропроцессорных систем на базе расширяемых процессорных платформ семейства Zynq‑7000 AP SoC в САПР Xilinx ISE Design Suite // Компоненты и технологии. 2014. № 4–12. 2015. № 1.
  12. Зотов В. Аппаратные средства разработки и отладки встраиваемых микропроцессорных систем, проектируемых на основе расширяемых вычислительных платформ фирмы Xilinx семейства Zynq‑7000 AP SoC // Компоненты и технологии. 2013. № 1.
  13. Зотов В. ZedBoard — эффективный инструмент разработки и отладки встраиваемых микропроцессорных систем, проектируемых на основе расширяемых вычислительных платформ фирмы Xilinx семейства Zynq‑7000 AP SoC // Компоненты и технологии. 2013. № 6.
  14. Зотов В. MicroZed — семейство унифицированных модулей для отладки и реализации встраиваемых микропроцессорных систем, проектируемых на основе платформ фирмы Xilinx серии Zynq‑7000 AP SoC // Компоненты и технологии. 2013. № 11.
  15. Embedded System Tools Reference Manual. — Xilinx, 2013.
  16. Зотов В. Разработка программного обеспечения встраиваемых микропроцессорных систем, проектируемых на базе расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC фирмы Xilinx. Часть 1 // Компоненты и технологии. 2015. № 2.
  17. Зотов В. Разработка программного обеспечения встраиваемых микропроцессорных систем, проектируемых на базе расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC фирмы Xilinx. Часть 2 // Компоненты и технологии. 2015. № 3.
  18. Зотов В. Разработка программного обеспечения встраиваемых микропроцессорных систем, проектируемых на базе расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC фирмы Xilinx. Часть 3 // Компоненты и технологии. 2015. № 4.
  19. Зотов В. Разработка программного обеспечения встраиваемых микропроцессорных систем, проектируемых на базе расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC фирмы Xilinx. Часть 4 // Компоненты и технологии. 2015. № 5.
  20. Зотов В. Разработка программного обеспечения встраиваемых микропроцессорных систем, проектируемых на базе расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC фирмы Xilinx. Часть 5 // Компоненты и технологии. 2015. № 6.
  21. Зотов В. Разработка программного обеспечения встраиваемых микропроцессорных систем, проектируемых на базе расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC фирмы Xilinx. Часть 6 // Компоненты и технологии. 2015. № 7.
  22. Зотов В. Разработка программного обеспечения встраиваемых микропроцессорных систем, проектируемых на базе расширяемых вычислительных платформ семейства Zynq‑7000 AP SoC фирмы Xilinx. Часть 7 // Компоненты и технологии. 2015. № 8.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *