Разработка и отладка программного обеспечения встраиваемых восьмиразрядных микропроцессорных систем
на основе ПЛИС фирмы Xilinx в среде pBlaze IDE
Валерий ЗОТОВ
Данная статья является продолжением цикла публикаций [1—3], знакомящих с pBlaze IDE (Integrated Development Environment) — интегрированной средой разработки и отладки программного обеспечения восьмиразрядных микропроцессорных систем на основе ядер семейства PicoBlaze [4—9]. В предшествующей части этого цикла были приведены общие характеристики, описание пользовательского интерфейса и директив отладочных средств, а также расшифровка кодовых сообщений об ошибках, генерируемых при трансляции исходного текста программ на языке ассемблера. В настоящей статье основное внимание уделяется практической работе с интегрированной средой pBlaze IDE.
Запуск рБ^е ЮЕ
Интегрированная среда pBlaze IDE выполнена в виде Wmdows-приложения pBlazIDE.exe, которое не требует специальной установки. Этот программный файл может располагаться в отдельной папке, либо может быть скопирован непосредственно в рабочий каталог проекта микропроцессорной системы, так как данный файл имеет сравнительно небольшой размер (порядка 1,5 Мбайт). Если приложение pBlazIDE.exe размещается в специально сформированную для этого папку, то для быстрого запуска целесообразно создать для него ярлык, который можно поместить как на Рабочий стол, так и непосредственно в рабочий каталог проекта микропроцессорной системы.
Для запуска отладочных средств pBlazIDE.exe можно использовать любой из способов активизации программ, предоставляемых операционной системой Windows, например, с помощью Проводника или команды Выполнить из меню, открываемого при нажатии кнопки Пуск. Если был создан ярлык на Рабочем столе, то для открытия интегрированной среды разработки и отладки микропроцессорных программ достаточно дважды щелкнуть левой кнопкой мыши на пиктограмме ш. Активизация отладочных средств может также эффективно выполняться с помощью какой-либо программы управления файлами,
например, с помощью управляющей оболочки Total Commander (Windows Commander), которая позволяет быстро установить требуемый текущий раздел диска и запустить нужное приложение.
Подготовка исходного текста микропроцессорной программы на языке ассемблера в pBlaze IDE
Прежде чем приступить непосредственно к созданию исходного текста новой ассемблерной программы, целесообразно указать
версию микропроцессорного ядра семейства PicoBlaze, на основе которого разрабатывается встраиваемая система. Для этого следует выполнить команду Settings из главного меню основного окна pBlaze IDE, после чего в появившемся меню нужно выбрать условное обозначение требуемого типа микропроцессорного ядра. Рис. 1 наглядно поясняет выполнение процедуры определения версии ядра PicoBlaze, для которой формируется и отлаживается новая микропроцессорная программа.
Если в качестве основы разрабатываемой встраиваемой системы используется микро-
wA—» - а а»* В aj , г , ,
Pfcrftaru о**
Рис. 1. Последовательность действий по выбору типа ядра семейства PicoBlaze, для которого создается и отлаживается новая микропроцессорная программа
11
т
*
й
______—
Щг*
Рис. 2. Последовательность действий по созданию исходного текста новой программы на языке ассемблера в среде pBlaze ЮБ
процессорное ядро PicoBlaze, реализуемое на основе ПЛИС семейств Spartan-II, Spartan-IIE, Virtex, Virtex-E [4-6], то необходимо указать во всплывающем меню строку Picoblaze I. В том случае, когда программа создается для микропроцессорного ядра PicoBlaze, предназначенного для использования в ПЛИС семейства Virtex-II [4, 7], следует выбрать пункт Picoblaze II. Для подготовки микропрограмм для ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4 [4, 9] нужно выделить строку Picoblaze 3. Если создаваемая программа предназначена для ПЛИС семейства CoolRunner-II [4, 8], то в меню следует выбрать Picoblaze CR. После активизации одного из перечисленных выше пунктов меню в соответствующей строке этого меню появляется маркер, указывающий на то, какой версии ядра соответствует создаваемая микропроцессорная программа. Кроме того, условное обозначение указанной версии ядра отображается в левой части строки состояния (рис. 1).
Выбранный тип микропроцессорного ядра можно изменить как в процессе подготовки исходного текста микропрограммы, так и после его завершения. Но для этого недостаточно воспользоваться соответствующей командой из меню Settings. При переходе от одной модификации микропроцессорного ядра PicoBlaze к другой (вызванном, например, необходимостью замены используемого семейства ПЛИС) в большинстве случаев потребуется также внести необходимые изменения в исходный текст микропрограммы на языке ассемблера [10]. Прежде всего, следует привести подготовленный ранее исходный текст в соответствие с форматами команд, поддерживаемыми версией ассемблера для выбранного нового варианта микропроцессорного ядра PicoBlaze. Особое внимание нужно обратить на формат представления адресов переходов и подпрограмм, а также номеров регистров общего назначения. При этом нужно учитывать возможные различия в объеме программной памяти и блока регистров общего назначения в используемой ранее и новой версии ядра PicoBlaze. Кроме того, различная глубина стека в этих версиях накладывает ограничения на количество вложенных вызовов подпрограмм. Для минимизации объема коррекции исходного текста микропроцессорной программы, обусловленной сменой версии ядра, и, соответственно, сокращения общего времени отладки программного обеспечения целесообразно использовать директивы интегрированной среды pBlaze IDE, рассмотренные в предыдущей публикации [3]. В частности, рекомендуется для всех регистров общего назначения, используемых в микропрограмме, задать мнемонические имена с помощью директивы EQU.
Процесс подготовки исходного текста новой микропроцессорной программы на языке ассемблера в среде pBlaze IDE начинается с выбора пункта File главного меню и после-
дующей активизации в открывшемся меню команды New, как показано на рис. 2. С этой же целью можно также воспользоваться кнопкой быстрого доступа ИИ, расположенной на кнопочной панели основного окна интегрированной среды pBlaze IDE.
В результате выполненных операций открывается новое рабочее окно встроенного текстового редактора, которому автоматически присваивается заголовок Untitled1, отображаемый на соответствующей закладке. Для повышения эффективности дальнейшей работы с отладочными средствами pBlaze IDE рекомендуется сразу изменить этот заголовок, указав мнемоническое название соответствующего создаваемого файла. Такие действия актуальны, прежде всего, в случае, если планируется одновременная работа с несколькими окнами редактирования. Чтобы задать идентификатор формируемого файла новой программы, нужно выполнить команду сохранения содержимого открытого рабочего окна на диске Save (Save As) из всплывающего меню File или воспользоваться кнопками быстрого доступа И и О. После этого в открывшейся стандартной диалоговой панели необходимо указать имя создаваемого файла и каталог, в который он должен быть помещен. По умолчанию для записи формируемого файла предлагается папка, в которой находится исполняемый файл pBlazIDE.exe. Рекомендуется сразу поместить создаваемый файл в отдельную папку, которая в дальнейшем будет использоваться в качестве рабочего каталога проекта разрабатываемой системы в САПР серии Xilinx ISE (Integrated Software Environment). Для этого можно воспользоваться кнопками перемещения по иерархической структуре каталогов компьютера на один уровень вверх Ш и создания новой папки □, которые расположены в верхней части диалоговой панели. В результате выполненных действий создается пустой файл, в который в дальнейшем будет записан текст про-
граммы. Расширение имени этого файла должно соответствовать версии микропроцессорного ядра семейства PicoBlaze, для которой разрабатывается программное обеспечение. Если проектируемая микропроцессорная система реализуется на основе семейств 8раг!ап-П, 8раг!ап-ПЕ, Viгtex, Viгtex-E, 8раг!ап-3, Viгtex-II, VІItex-IIPRO и Virtex-4, то в качестве расширения имени создаваемого файла нужно указать psm [10]. Для встраиваемых систем, выполняемых на базе семейства СооШоппєг-П, исходный текст должен быть записан в файл с расширением asm [10]. После ввода имени файла и его сохранения на диске соответствующим образом автоматически изменяется и заголовок нового окна редактирования.
Далее в данном окне с помощью клавиатуры вводится исходный текст программы. При этом следует обратить внимание на то, что для записи каждой инструкции микропроцессорного ядра и директивы среды pBlaze IDE должны использоваться либо только заглавные, либо только строчные буквы латинского алфавита. В случае одновременного употребления заглавных и строчных букв в тексте одной команды (директивы) при трансляции данной строки будет сформировано сообщение об ошибке.
В начале исходного теста программы рекомендуется располагать все используемые директивы pBlaze ЮБ, с помощью которых определяются мнемонические идентификаторы регистров общего назначения, констант и переменных, а также описываются порты ввода-вывода и блоки оперативной и постоянной памяти [3]. Тем самым сокращается время поиска нужной строчки при необходимости изменения значений указанных параметров в отлаживаемой микропрограмме. После директив pBhze ЮБ следует собственно программа, состоящая из команд ассемблера.
При наборе текста программы мнемонические обозначения инструкций микропроцессорного ядра автоматически выделяются
полужирным шрифтом. Таким образом, разработчику предоставляется возможность оперативного контроля синтаксиса команд непосредственно в процессе ввода исходного текста ассемблерной программы. Благодаря этому уменьшается общее время разработки и отладки программного обеспечения, так как можно отследить часть синтаксических ошибок еще на этапе редактирования, не выполняя трансляции программы.
Для сокращения общего времени разработки и минимизации синтаксических ошибок в исходный текст могут быть включены фрагменты кода отлаженных ранее микропрограмм. Для этого следует открыть файл, содержащий исходный текст успешно отлаженной программы, в новом окне редактора pBlaze IDE. Ускорить процесс открытия файлов, с которыми работали ранее в текстовом редакторе pBlaze IDE, позволяет команда Recent Files, которая находится в меню File. При выполнении этой команды на экран монитора выводится меню следующего уровня в форме списка идентификаторов файлов, которые были открыты во встроенном редакторе в предыдущих сеансах работы. Чтобы открыть один из этих файлов, достаточно поместить курсор на соответствующую строку списка и щелкнуть левой кнопкой мыши. После этого содержимое указанного файла отображается в новом рабочем окне редактора. Если текст импортируемой микропроцессорной программы был подготовлен ранее с помощью альтернативного (внешнего) текстового редактора, то следует выполнить команду открытия соответствующего файла Open из всплывающего меню File или нажать кнопку быстрого доступа Е1, которая расположена на кнопочной панели основного окна интегрированной среды pBlaze IDE. Кроме того, можно воспользоваться командой Import из того же меню File.
В процессе исполнения этих команд на экран выводится стандартная диалоговая панель открытия файла, в которой отображается список имен файлов, содержащих исходный текст на языке ассемблера. При необходимости в этой диалоговой панели следует найти каталог на диске, в котором находится требуемый файл. Для этого можно воспользоваться кнопкой Ш в верхней части диалоговой панели. После выделения идентификатора файла, фрагмент которого нужного вставить в исходный текст новой программы, и нажатия кнопки Открыть в нижней части диалоговой панели автоматически открывается новое рабочее окно редактора, в котором отображается содержимое выбранного файла. В этом окне нужно с помощью мыши выделить импортируемый фрагмент ассемблерного текста и воспользоваться командой копирования Copy из меню Edit или кнопкой быстрого доступа И на кнопочной панели pBlaze IDE. При этом копия выделенного фрагмента исходного текста микропрограммы из текущего окна редактирования поме-
щается в буфер обмена Clipboard. Далее следует активизировать рабочее окно встроенного текстового редактора, в котором формируется исходный текст новой программы. Для этого нужно поместить курсор на закладку с его названием и щелкнуть левой кнопкой мыши. В этом окне редактирования курсором нужно указать место вставки импортируемого фрагмента и зафиксировать его щелчком левой кнопки мыши, после чего выполнить команду вставки Paste из меню Edit или нажать кнопку 0 на панели. При этом содержимое буфера обмена копируется в указанное место. Операция вставки при необходимости может быть повторена в других местах расположения копируемого фрагмента.
После записи всех необходимых команд можно включить в состав исходного текста директивы интегрированной среды pBlaze IDE, управляющие процессом генерации выходных файлов. В частности, целесообразно добавить директиву VHDL, которая предназначена для автоматического формирования файла описания содержимого программной памяти на языке VHDL после трансляции [3]. VHDL-описание содержимого ППЗУ микропрограмм необходимо на этапах синтеза и моделирования, которые выполняются в САПР серии Xilinx ISE. Завершив процесс ввода и редактирования исходного текста новой микропроцессорной программы, рекомендуется записать его в файл на диске, используя команды Save (Save As) меню File или кнопки быстрого доступа Н и В. После этого можно приступить к верификации микропрограммы, моделируя процесс ее выполнения.
Отладка программ в pBlaze IDE
Для переключения из режима редактирования программы в режим моделирования процесса ее выполнения нужно выполнить команду Simulate, которая находится в меню Simulate, или нажать кнопку быстрого доступа И на кнопочной панели. При этом автоматически запускается процесс трансляции исходного текста микропрограммы, который был подготовлен на предыдущем этапе. В случае обнаружения каких-либо ошибок на одной из фаз трансляции этот процесс прерывается, и на экран выводится информация о выявленных ошибках. Если была зафиксирована ошибка во время выполнения первой фазы трансляции, то информационное сообщение о ней отображается только во встроенном окне журнала регистрации сообщений (Log Pane) основного окна pBlaze IDE. При обнаружении ошибок в процессе выполнения второй фазы трансляции информация о них отображается как в окне журнала регистрации сообщений, так и непосредственно в тексте программы в окне отладчика. Кодовое обозначение зафиксированной ошибки размещается слева от строки с ошибочной инструкцией или директивой pBlaze IDE (там,
где при отсутствии ошибок отображаются адрес инструкции и ее шестнадцатеричное представление). Сообщения об ошибках трансляции выделяются желтым цветом. Формат сообщений об ошибках, генерируемых транслятором отладочных средств pBlaze IDE, и описания кодовых обозначений наиболее распространенных ошибок были подробно рассмотрены ранее [3].
В случае успешного завершения трансляции исходного текста отлаживаемой микропрограммы генерируется исполняемый код и математическая модель, включающая эмулятор микропроцессорного ядра, программной памяти, оперативной памяти и используемых портов ввода-вывода. Об этом извещает следующая информация, отображаемая в окне журнала регистрации сообщений.
Assembler Phase 1: building symbol table
Assembler Phase 2: constructing opcodes
Assembler Phase 3: building simulation objects
Program is Reset
При этом автоматически производится инициализация сформированной модели, в результате чего обнуляется содержимое программного счетчика, регистров общего назначения и флагов регистра состояния. Кроме того, указатель очередной исполняемой инструкции в окне отладчика устанавливается на первой строке текста программы, содержащей инструкцию микропроцессорного ядра PicoBlaze. Этот указатель выполнен в форме пиктограммы В, которая отображается непосредственно перед мнемонической записью команды. Кроме того, строка исходного текста, в которой расположен данный указатель, по умолчанию выделяется синим цветом.
Отладочные средства pBlaze IDE предоставляют возможность осуществлять процесс моделирования выполнения микропроцессорной программы в пошаговом или непрерывном режиме, а также совмещать эти режимы. В пошаговом режиме эмуляция исполнения каждой команды микропрограммы инициируется разработчиком. На каждом шаге осуществляется моделирование выполнения только одной (текущей) инструкции, в строке которой в окне отладчика установлен указатель очередной выполняемой команды. Пошаговый режим позволяет контролировать содержимое регистров общего назначения, оперативной памяти, состояние флагов регистра статуса и портов ввода-вывода после выполнения каждой инструкции микропроцессорной программы, но требует достаточно большого количества времени. Поэтому данный режим эффективно использовать при небольшом объеме отлаживаемой микропрограммы и отсутствии в ней циклов. Отладка микропроцессорной программы в пошаговом режиме осуществляется с помощью команд Step One и Step Over из меню Simulate или кнопок и □ , которые находятся на кнопочной панели основного окна pBlaze IDE.
Рис. 3. Указатели очередной исполняемой команды и точки останова в окне отладчика pBlaze IDE
В непрерывном режиме моделируется процесс выполнения отлаживаемой микропрограммы в полном объеме без вмешательства со стороны разработчика. Для осуществления отладки в непрерывном режиме следует выполнить команду Run из меню Simulate или воспользоваться кнопкой □ . Данный режим позволяет быстро оценить конечный результат выполнения программы, но не допускает внешнего управления ходом этого процесса. Можно только приостановить его выполнение с помощью команды Pause из меню Simulate или кнопки ЕЙ, но при этом трудно зафиксировать инструкцию, после которой нужно сделать паузу. Поэтому, прежде чем запустить процесс моделирования выполнения программы в непрерывном режиме, рекомендуется установить точки останова (контрольные точки). Для этого следует поместить курсор на соответствующую строку исходного текста микропрограммы в окне отладки и выбрать команду Toggle из меню Simulate или нажать кнопку ш на кнопочной панели основного окна pBlaze IDE. При этом данная строка выделяется красным цветом и в ее начале появляется соответствующий маркер в виде пиктограммы И, выполняющий функцию указателя контрольной точки. Рис. 3 иллюстрирует отображение указателей очередной исполняемой команды и точек останова в окне отладки.
Процесс выполнения программы приостанавливается перед исполнением команды, которая отмечена как точка останова. Во время образовавшейся паузы разработчику предоставляется возможность контроля содержимого регистров общего назначения, ячеек оперативной памяти, состояния портов ввода-вывода и флагов регистра статуса, а также их принудительного изменения. Кроме того, при остановке можно также сформировать сигнал запроса прерывания. Операции изменения содержимого регистров, состояния флагов, портов ввода-вывода и формирования запроса прерывания подробно рассматриваются в следующем разделе. Во время остановки в контрольной точке содержимое программного счетчика и указателя стека не изменяется. После внесения всех необходимых изменений процесс моделирования может быть продолжен в непрерывном режиме с помощью команд Run и Step till cursor или кнопок И и 13.
На практике, в большинстве случаев эффективен смешанный режим моделирования. Вначале запускается процесс моделирования в непрерывном режиме с указанием точек останова. Затем, при необходимости, после остановки в контрольной точке моделирование возобновляется в пошаговом режиме. Для продолжения моделирования в пошаговом режиме следует использовать команды Step One и Step Over или кнопки ES и Н соответственно. Далее в любой момент можно вновь переключиться в непрерывный режим,
воспользовавшись командами Run и Step till cursor или кнопками □ и.
Количество точек останова, устанавливаемых в процессе моделирования, определяется разработчиком в соответствии с особенностями отлаживаемой программы. Целесообразно зафиксировать точки останова для осуществления следующих операций в процессе отладки:
• определение соответствующих значений данных, поступающих во входной порт ввода-вывода перед выполнением инструкций чтения информации из этого порта;
• проверка и модификация состояния флагов регистра статуса после выполнения определенных инструкций микропроцессорной программы;
• генерация сигнала запроса прерывания;
• контроль и изменение текущего содержимого регистров общего назначения;
• проверка содержимого выходных портов ввода-вывода после выполнения инструкций записи информации в эти порты.
В процессе отладки микропроцессорной программы в интегрированной среде pBlaze IDE разработчик может, при необходимости, изменять нормальную (предполагаемую) последовательность ее выполнения, оказывая оперативные воздействия на содержимое регистров общего назначения, состояние флагов регистра статуса и портов ввода-вывода во время моделирования. В следующем разделе рассматривается механизм этих воздействий.
Внешние воздействия на процесс выполнения программ, осуществляемые при моделировании в pBlaze IDE
Текущие значения флагов регистра статуса эмулируемого ядра PicoBlaze отображаются в форме трех индикаторов состояния, расположенных во встроенной панели Status (рис. 3). Индикатор Zero соответствует флагу-признаку нулевого результата выполненной операции ZERO Flag. С помощью индикатора Carry отображается текущее состояние флага-признака переноса/займа CARRY Flag. Присутствие маркера на поле какого-либо из этих индикаторов указывает на то, что соответствующий флаг находится в установленном состоянии (принимает значение логической единицы). Отсутствие маркера соответствует сброшенному состоянию флага (значению логического нуля). Индикатор Enable информирует об установленном текущем режиме обработки прерываний (разрешения или запрета). Если на поле этого индикатора отображается маркер, то обработка прерываний разрешена. В противном случае установлен режим запрета обработки прерываний.
Для того чтобы принудительно изменить состояние флагов ZERO Flag и CARRY Flag или режим обработки прерываний в течение сеанса моделирования, достаточно поместить курсор на поле соответствующего индикато-
ра и щелкнуть левой кнопкой мыши. После этого состояние выбранного индикатора изменится на противоположное.
Содержимое регистров общего назначения моделируемого ядра отображается в соответствующих полях редактирования, которые представлены во встроенной панели Registers (рис. 3). Каждое из этих полей редактирования имеет номер, который соответствует стандартной нумерации регистров общего назначения, принятой для выбранной версии ядра PicoBlaze [4-9]. Значения номеров полей редактирования, как и регистров общего назначения, указываются в шестнадцатеричной форме. Данные, содержащиеся в регистрах общего назначения, отображаются в соответствующих полях редактирования в виде двузначных шестнадцатеричных чисел. Эти значения могут быть произвольно изменены разработчиком в процессе отладки программы. Для принудительной модификации содержимого регистра общего назначения нужно активизировать требуемое поле редактирования, поместив на него указатель мыши и щелкнув левой кнопкой. После этого в выбранном поле появляется мерцающий курсор, указывающий на возможность ввода значений с помощью клавиатуры. При вводе символов, которые не соответствуют шестнадцатеричной системе счисления, содержимое соответствующего регистра общего назначения обнуляется при выполнении очередного шага моделирования.
Информация о значениях данных, которые поступают в порты ввода-вывода, описанные с помощью директив pBlaze IDE, выводится в двоичном представлении в форме линейки индикаторов. Эти индикаторы располагаются во встроенных панелях, заголовки которых совпадают с идентификаторами портов, указанными в соответствующих директивах DSIN, DSOUTи DSIO (рис. 3). Значение адреса каждого отображаемого порта ввода-вывода в шестнадцатеричном формате приводится слева от линейки индикаторов. Состояние каждого из этих индикаторов определяет значение соответствующего двоичного разряда байта данных. При этом используется следующий порядок нумерации разрядов: седьмой бит является старшим значащим разрядом байта данных, а нулевой — младшим. Шестнадцатеричное значение этого байта отображается справа от линейки индикаторов. Вид этих индикаторов зависит от типа соответствующего порта ввода-вывода.
Значения сигналов, фиксируемые в каждом входном порте, задаются с помощью восьми индикаторов состояния. Если поле какого-либо индикатора отмечено маркером, то данный разряд принимает значение логической единицы. При отсутствии маркера в этот разряд байта данных записывается логический ноль. Для изменения значения какого-либо разряда нужно поместить курсор на поле соответствующего индикатора и щелкнуть левой кнопкой мыши. При этом
состояние индикатора изменяется на противоположное.
Данные, поступающие в двунаправленные (входные-выходные) порты ввода-вывода, отображаются в виде линейки светодиодных индикаторов, которые могут находиться во включенном и выключенном состоянии. Включенное состояние светодиодного индикатора, изображаемое более ярким цветом, указывает на то, что данный разряд байта данных принимает значение логической единицы. Выключенное состояние светодиодного индикатора соответствует нулевому значению этого разряда. Принудительное переключение состояния этих светодиодных индикаторов осуществляется тем же способом, что и при изменении значений разрядов байта данных во входном порте.
Значения данных, передаваемых в выходные порты, также отображаются с помощью светодиодных индикаторов. Но, в отличие от индикаторов двунаправленных портов ввода-вывода, индикаторы выходных портов имеют другой цвет, и их состояние не может быть изменено принудительно.
Для отладки процедур обработки прерываний необходимо в процессе моделирования выполнения микропроцессорной программы сформировать соответствующий запрос. Отладочные средства позволяют моделировать выполнение прерываний, вызываемых фронтом сигнала, который поступает на вход INTERRUPT микропроцессорного ядра, или постоянным уровнем этого сигнала. Выбор типа запроса прерывания осуществляется с помощью индикаторов состояния, расположенных во встроенной панели Interrupt (рис. 3). Для того чтобы имитировать запрос прерывания по фронту сигнала INTERRUPT, нужно перевести индикатор Edge во включенное состояние, отмеченное маркером. Если необходимо генерировать запрос прерывания в виде постоянного уровня сигнала, следует установить во включенное состояние индикатор Steady. Кроме того, в интегрированной среде pBlaze IDE предусмотрена возможность моделирования прерывания по срабатыванию эмулируемого таймера. Для реализации этой возможности нужно переключить индикатор Timer во включенное состояние. При этом длительность периода срабатывания таймера определяется с помощью поля редактирования, которое находится во встроенной панели Interrupt под индикатором состояния Timer (рис. 3). Требуемое значение длительности указывается в миллисекундах. В рассматриваемой версии отладочных средств процесс моделирования прерывания от таймера осуществляется не всегда корректно.
Чтобы смоделировать выполнение процедуры обслуживания прерывания, следует установить режим разрешения обработки прерываний после выбора типа запроса. Для этого нужно перевести индикатор Enable в активное состояние, отмеченное маркером.
В результате при инициировании моделирования выполнения очередной инструкции микропроцессорной программы будет выполнен переход к процедуре обслуживания прерывания. Отладка подпрограммы обработки прерывания выполняется теми же методами, что и отладка основной микропроцессорной программы. После моделирования исполнения инструкции выхода из процедуры обслуживания прерывания происходит возврат к процессу отладки главной микропрограммы.
Процесс подготовки и отладки разрабатываемой программы в среде pBlaze IDE будет наглядно продемонстрирован на конкретном примере проектирования программного обеспечения встраиваемой системы в следующей публикации цикла. ■
Литература
1. Зотов В. Программирование конфигурационной памяти встраиваемой системы, реализуемой на основе микропроцессорного ядра семейства PicoBlaze в ПЛИС фирмы Xilinx. // Компоненты и технологии. 2006. № 2.
2. Зотов В. pBlaze IDE — интегрированная среда разработки и отладки программного обеспечения встраиваемых восьмиразрядных микропроцессорных систем, реализуемых на основе ПЛИС фирмы Xilinx // Компоненты и технологии. 2006. № 3-4.
3. Зотов В. Директивы и сообщения об ошибках интегрированной среды разработки и отладки программного обеспечения встраиваемых восьмиразрядных микропроцессорных систем pBlaze IDE // Компоненты и технологии. 2006. № 5.
4. Зотов В. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx. М.: Горячая линия — Телеком. 2006.
5. Зотов В. PicoBlaze — семейство восьмиразрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx. // Компоненты и технологии. 2003. № 4.
6. Зотов В. Система команд микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-II, Spartan-IIE, Virtex, Virtex-E // Компоненты и технологии. 2003. № 5.
7. Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства Virtex-II // Компоненты и технологии. 2003. № 6.
8. Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства CoolRunner-II // Компоненты и технологии. 2003. № 7.
9. Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейств Spartan-3, Virtex-II и Virtex-IIPRO // Компоненты и технологии. 2005. № 5-6.
10. Зотов В. Разработка программ на языке ассемблера для семейства микропроцессорных ядер PicoBlaze // Компоненты и технологии. 2003. № 8.