Внутрисхемная отладка микроконтроллеров Microchip

№ 7’2008
PDF версия
Microchip Technology Inc. постоянно расширяет не только линейку PIC микроконтроллеров, добавляя им все новые функции, но и не забывает об отладочных средствах. От удобства и возможностей отладки микроконтроллеров во многом зависят время разработки и успех конечного продукта. Наиболее универсален и практически незаменим на последней стадии разработки является внутрисхемный отладчик.

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

Среди внутрисхемных отладчиков/программаторов наиболее популярны программатор/отладчик разработчика PICkit2, внутрисхемный отладчик ICD–2 и внутрисхемный эмулятор REAL ICE. Все они могут работать под бесплатной средой разработки MPLAB IDE.

Внутрисхемный отладчик ICD–2

ICD–2 [1] стал классическим внутрисхемным отладчиком и программатором. Он способен запрограммировать большинство Flash–микроконтроллеров и поддерживает все, ставшие уже привычными, функции для отладки программ: разные режимы работы (в реальном времени и пошагово), расширенные точки останова (по совпадению адреса программного счетчика, по совпадению адреса/ значения чтения/записи в памяти данных, по вхождению в режим Sleep, по срабатыванию сторожевого таймера), комбинационные точки останова (И, ИЛИ, последовательное выполнение расширенных точек останова), возможность просмотра и модификации содержимого управляющих регистров, Flash, RAM и EEPROM, возможность измерения временных интервалов между точками останова и т. д. Более подробно функциональные возможности ICD–2 были описаны в[2].

Программатор/отладчик/анализатор разработчика PICkit2

В среде MPLAB IDE PICkit2 [3] также является полноценным внутрисхемным отладчиком и программатором. В сравнении с ICD–2, PICkit2 имеет ряд дополнительных функций, реализуемых в специальном windows–приложении PICkit2:

  • удобный пользовательский интерфейс для отладки протокола UART (UART Tool);
  • установка и отслеживание состояния портов (Logic Tool, Logic I/O);
  • отслеживание формы сигналов разрабатываемого устройства (Logic Tool, Analyzer);
  • автономный программатор;
  • программирование микросхем памяти EEPROM, Keeloq и CAN–расширителей портов ввода/вывода;
  • возможность использования нескольких PICkit2 для отладки одного устройства;
  • калибровка питающего напряжения Vdd;
  • интерфейс управления с командной строки.

UART Tool [3] (рис. 1) позволяет использовать PICkit2 для передачи данных между отлаживаемым микроконтроллером (по выводам RX/TX) и компьютером по UART, что дает возможность быстро и наглядно настроить правильную работу модуля UART, а также отладить используемые протоколы.

Рис. 1. Пользовательский интерфейс для отладки протокола UART, UART Tool
Рис. 1. Пользовательский интерфейс для отладки протокола UART, UART Tool

UART Tool позволяет осуществлять обмен данными с заданной скоростью от 300 до 38 400 бод. Данные, которые нужно будет выслать на микроконтроллер, могут быть предварительно занесены в текстовые файлы, а принимаемые в ответ — занесены в лог–файл, что значительно упрощает анализ и отладку работы протокола.

С помощью Logic Tool [4] (рис. 2) можно создавать воздействия и отслеживать состояние сигналов разрабатываемого устройства. Поддерживается два режима: Logic I/O — формирование нужных логических уровней и мониторинг состояния уровней цифровых сигналов; Analyzer — отображение формы до трех цифровых сигналов, с возможностью старта их записи по заданному условию (нарастание/спад фронта сигнала, низкий/высокий уровень), а также по комбинации нескольких условий.

Рис. 2. Отслеживание формы сигналов разрабатываемого устройства, Logic Tool - Analyzer
Рис. 2. Отслеживание формы сигналов разрабатываемого устройства, Logic Tool — Analyzer

PICkit 2 Programmer–To–Go [5] позволяет, после записи в память PICkit2 программы «прошивки» микроконтроллера, программировать любой PIC, за исключением PIC32, нажатием одной кнопки, без использования ПК. Для работы в автономном режиме необходимо только питание по USB от компьютера или автономного USB–источника питания.

В оболочке PICkit2 каждому отладчику/программатору PICkit2 можно назначить собственное имя для идентификации [3], что позволяет использовать несколько PICkit2 для отладки одного контроллера. При этом, например, один может быть использован утилитой Logic Tool, второй — UART Tool, третий как отладчик и т. д.

PICkit2 имеет калибровку внутреннего преобразователя напряжения [4], что дает возможность выставить напряжение питания схемы Vdd в пределах от 2,5 до 5 В с точностью 0,1 В. Значение этого напряжения, так же как и идентификационное имя, хранится в энергонезависимой памяти PICkit2 и не требует установки при каждом подключении.

PICkit2 обладает отличным соотношением функциональность/универсальность/цена и является оптимальным решением для относительно несложной разработки.

Следует обратить внимание, что доступны схема и исходный код PICkit2, что позволяет разработчику сделать собственный программатор или освоить работу с USB–устройствами.

Внутрисхемный эмулятор REAL ICE

REAL ICE [6] также поддерживает все функции внутрисхемной отладки, но отличается от ICD–2 и PICkit2 значительно большим быстродействием и имеет функции внутрисхемного эмулятора, такие как:

  • трассировка кода и данных, захват уровней на 8–битном порту REAL ICE;
  • триггеры (отображение данных в окне отладчика watch в реальном времени, останов по условному внешнему событию);
  • программные точки останова;
  • интерфейс мониторинга и управления данными (DMCI).

Программная трассировка позволяет просмотреть историю изменения переменной, значения регистра или вывода контроллера в процессе работы устройства. Для этого в коде программы ставятся специальные метки: строка Log(id, x), где id — номер используемого канала, который определяется автоматически, x — переменная, значение которой фиксируется при трассировке. Компилятор автоматически вставляет в код служебные команды, обеспечивающие трассировку. Текущее значение трассируемой переменной будет заноситься в историю каждый раз, когда программа будет проходить через метку. Потом историю можно просмотреть в окне Trace.

Аппаратная трассировка доступна в высокопроизводительных 32–разрядных контроллерах PIC32 и позволяет просмотреть весь ход выполнения программы до текущего состояния. Всего может быть зафиксировано до 22 млн строк. С помощью аппаратной трассировки можно быстро и эффективно отладить код. Например, вкупе с обработчиком особых ситуаций (except handler), к которым относятся прерывание, ошибка адреса, ошибка шины, точка останова, запрещенная команда, ошибка сопроцессора, арифметическое переполнение, деление на 0 и т. д., трассировка позволяет определить ветку программы, выполнение которой привело к ошибке.

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

Рис. 3. Внешние триггеры
Рис. 3. Внешние триггеры

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

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

Рис. 4. Интерфейс мониторинга и управления данными (DMCI)
Рис. 4. Интерфейс мониторинга и управления данными (DMCI)

Внутрисхемный эмулятор REAL ICE — незаменимое средство для разработки сложнейших устройств и систем. Он совместил в себе универсальность (поддерживает все новые PIC–контроллеры), близость к «железу», так как работа происходит с реальным устройством и фактическими сигналами, а также разумную стоимость внутрисхемного отладчика и целый ряд функций эмулятора. К последним относятся: почти неограниченное количество точек останова (ограничивается только количеством памяти контроллера) без эффекта проскальзывания, отображение значений переменных в реальном времени при исполнении программы, построение графиков изменения значения переменных в процессе работы устройства (DMCI) и, естественно, трассировка. Это открывает большие возможности при разработке и отладке конечного устройства. Если добавить к этому модульную конструкцию (дочерние модули LVDS передатчика и приемника позволяют производить отладку удаленных устройств, например, в климатической камере), автоматическое определение типа контроллера и возможность безопасного горячего подключения к отлаживаемой схеме, то преимущества REAL ICE становятся безоговорочными.

Microchip постоянно представляет новые версии среды разработки MPLAB IDE, причем с каждым апгрейдом расширяется ряд поддерживаемых микросхем, добавляются новые функции. Способность внутрисхемных программаторов/отладчиков/эмуляторов обновлять свое ПО позволяет Microchip и в дальнейшем закладывать в PICkit2 и REAL ICE новые функции.

Литература

  1. MPLAB® ICD 2 In–Circuit Debugger User.s Guide, http://ww1.microchip.com/downloads/en/DeviceDoc/51331C.pdf
  2. Сафронов А., Никифоров И. Внутрисхемный отладчик MPLAB–ICD2 // Компоненты и технологии. 2007, № 7.
  3. PICkit. 2 Programmer/Debugger User.s Guide, http://ww1.microchip.com/downloads/en/DeviceDoc/51553E.pdf
  4. PICkit2 Logic Tool User Guide, http://ww1.microchip.com/downloads/en/DeviceDoc/Logic%20Tool%20User%20Guide.pdf
  5. PICkit2 Programmer–To–Go User Guide, http://ww1.microchip.com/downloads/en/DeviceDoc/Programmer-To-Go%20User%20Guide.pdf
  6. MPLAB REAL ICE In–Circuit Emulator User’s Guide, http://ww1.microchip.com/downloads/en/DeviceDoc/51616B.pdf

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

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