А. Федорцов
На сегодняшний день трудно себе представить разработку законченного устройства на основе микроконтроллера без использования средств проектирования и отладки. Отладочные средства позволяют автоматизировать процесс проектирования, избавить разработчика от рутинных операций и сэкономить много времени. Причем наибольший эффект достигается при использовании комплекса отладочных средств в составе: программный симулятор, внутрисхемный эмулятор, интегрированная среда отладки.
Для наиболее популярного в настоящее время у нас в стране, да и за рубежом, семейства микроконтроллеров MCS51 в Гомельском государственном университете им. Ф. Скорины был разработан комплекс отладочных средств. В него входят внутрисхемный эмулятор ANT-97, а также многофункциональный отладчик Inter, настроенный на поддержку комплексной отладки программных и аппаратных средств устройств на базе MCS51.
Внутрисхемный эмулятор ANT-97 предназначен для работы под управлением IBM PC совместимого персонального компьютера. Эмулятор подключается к параллельному порту компьютера (порт должен поддерживать режим двунаправленной передачи данных).
Структурная схема ANT-97 приведена на рисунке. Прибор состоит из двух модулей базового и сменного. В состав базового модуля входит блок управления, память программ/данных, память точек останова, блок карты памяти, блок обмена данными, а также буферные элементы. Таким образом, в базовом модуле сосредоточены все необходимые для эффективной эмуляции блоки. Это позволяет значительно упростить схемотехнику и конструкцию сменных модулей. В состав сменного модуля входят лишь целевой микроконтроллер и генератор тактовых импульсов. В некоторых случаях могут понадобиться дополнительные буферные и логические элементы. Такое конструктивное решение позволяет производить отладку систем на базе широкого спектра микроконтроллеров семейства МСS51, а также использовать прибор в качестве эмулятора ПЗУ (до 64 Кбайт).
В начале сеанса отладки происходит инициализация эмулятора. При этом разрешается доступ с ЭВМ к памяти программ/данных и точек останова, а также к блоку карты памяти. Пользователь вводит и редактирует программу, предназначенную для отладки, пользуясь средствами инструментальной ЭВМ. После редактирования, при помощи блока управления и буферного элемента, программа пользователя заносится в память программ/данных эмулятора. Туда же записывается системная программа-монитор, предназначенная для управления процессом обмена данными между инструментальной ЭВМ и отлаживаемой системой. В память точек останова заносится информация об установленных пользователем контрольных точках, в которых микроконтроллеру необходимо прервать выполнение программы и передать данные о состоянии ресурсов отлаживаемой системы на инструментальную ЭВМ. Блок карты памяти предназначен для хранения информации о распределении адресов памяти программ/данных между отлаживаемой системой и эмулятором (при этом обеспечивается возможность выборочной эмуляции участков программ и данных пользователя).
После записи всей необходимой для эмуляции информации управление передается целевому микроконт-роллеру. При этом буфер, связывающий устройство с инструментальной ЭВМ, переводится в третье состояние, а другой буфер переводится из третьего состояния в активное. Таким образом, микроконтроллер получает доступ к памяти программ/данных и начинает выполнение программы пользователя.
Программа пользователя может выполняться в одном из трех режимов: реального времени, пошаговом и с точками останова. При выполнении в режиме реального времени программа выполняется полностью адекватно целевой системе без эмулятора. Остановов в контрольных точках при этом не происходит (однако возможен останов выполнения по желанию пользователя). В режиме с точками останова пользовательская программа запускается аналогично режиму реального времени, однако разрешается отслеживание контрольных точек. По ходу выполнения микроконтроллер выставляет на внешнюю шину текущий адрес и, как только он совпадает с адресом точки останова, на микроконтроллер подается сигнал прерывания. Вектор прерывания настроен на переход к монитору. Под управлением монитора происходит обмен данными (в управляющую ЭВМ поступает информация о состоянии внутренних регистров и ячеек памяти отлаживаемой системы, при необходимости, ЭВМ их изменяет и записывает новые значения в отлаживаемую систему). В пошаговом режиме программа пользователя выполняется последовательно по одной команде. Между выполнением команд программы пользователя происходят вызовы монитора.
Программное обеспечение для ANT-97 разработано на основе многофункционального отладчика Inter, который позволяет в многооконной, интерактивной среде набирать ассемблерные программы пользователя и проводить символьную отладку.
Наряду со стандартными возможностями отладчика (редактирование программ в среде, пошаговое выполнение с различными условиями останова, отслеживание выражений (регистров, ячеек памяти, операндов ассемблера), установка новых значений для разрешенных выражений, поддержка в среде мыши, управление палитрой среды, сохранение/восстановление конфигурации, контекстная помощь) реализованы некоторые до-полнительные возможности (инкрементный анализ, "теневые" команды среды, окна-картинки, загрузка файла языковых фраз).
В Inter реализован инкрементный синтаксический анализ исходного текста. Таким образом, во время набора программы пользователя, во время вызовов различных диалоговых окон, исходный текст анализируется, и составляется его внутреннее представление. Ин-крементный анализ осуществляется постоянно, с первой строки программы до последней, до тех пор, пока весь текст не будет скомпилирован. Если строка модифицируется, то она перекомпилируется. Если строка программы содержит ссылки, то она перекомпилируется при отсутствии или изменении ссылок в месте их определения.
Во время процесса отладки при выполнении инструкций программы пользователя бывает нужным модифицировать исходный текст (соответственно, и выполняемый код) программы. Во многих ассемблерных отладчиках для этого необходимо выйти в текстовый редактор. В некоторых можно модифицировать исходный текст, но после этого опять требуется компиляция и выполнение программы пользователя до прерванной точки, что не всегда легко осуществимо. Inter же дает возможность после модификации исходного текста продолжить выполнение с любой точки программы, не изменяя содержимое переменных программы, стека и других элементов, которые при обычном входе устанавливаются в начальные значения.
Команды установки и проверки значений используются для тестирования инструкций процессора (при отладке описания процессора) и, в основном, для тестирования процедур пользователя. Команда установки позволяет занести эталонное значение, а команда проверки проверить эталонное значение и выдать сообщение о результате операции по ходу выполнения отлаживаемой программы.
Есть возможность оперативно переключаться с аппаратной эмуляции на программную симуляцию и обратно.
В настоящее время в ГГУ им. Ф. Скорины ведется разработка нового поколения многофункциональной среды отладки Winter. Среди прочих ее достоинств следует выделить современный графический интерфейс, сверхвысокую скорость симуляции и поддержку работы с аппаратными эмуляторами по локальным и глобальным вычислительным сетям (в том числе и Internet). Основное же преимущество Winter возможность настройки на любой микроконтроллер или микропроцессор унаследовано от отладчика Inter.
Также ведется проектирование универсального внутрисхемного эмулятора для широкого спектра микропроцессоров, микроконтроллеров и процессоров цифровой обработки сигналов. Основные принципы, положенные в основу разработки модульная конструкция, программируемая структура, поддержка стандартного интерфейса тестирования электронных схем JTAG.
С описанными выше и некоторыми другими продуктами можно более подробно ознакомиться, посетив сайт ГГУ им. Ф. Скорины
http://gsu.unibel.by/nit/main.htm.
Литература
E-mail: fedortsov@gsu.unibel.by
Ваш комментарий к статье | ||||