debugWIRE

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

debugWIRE — протокол последовательной передачи данных, разработанный фирмой Atmel и предназначенный для внутрисхемной отладки микроконтроллеров AVR.

Особенности[править | править код]

debugWIRE разрабатывался как более дешёвая альтернатива JTAG, специально для процессоров с ограниченными ресурсами. Он поддерживается большинством современных 8-битных контроллеров AVR. Пользователь получает возможность чтения и записи всех областей памяти (FLASH, EEPROM, Fuse bits) и контроль над выполнением программы внутри контроллера (брэкпойнты в программной памяти). Однако протокол не поддерживает пошагового выполнения.

Протокол использует единственную двунаправленную линию Reset для входа и выхода данных.

Ограничения[править | править код]

Программные точки останова формируются с помощью входящей в систему команд AVR команды Break. Интегрированная среда разработки обеспечивает сохранение оригинальной команды, заменяемой Break в памяти настольного компьютера, с последующим её восстановлением и продолжением исполнения программы. Таким образом использование программных точек останова тратит ограниченный ресурс данных микроконтроллеров — максимально возможное количество циклов записи стирания программной памяти. Нужно следить, чтобы отладчик не израсходовал его полностью.

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

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

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

Поддерживаемые устройства[править | править код]

  • ATmega48/V ATmega88/V ATmega168/V[1]
  • ATmega48A/PA/88A/PA/168A/PA/328/P [2]
  • ATtiny13/V[3]
  • ATtiny1634[4]
  • ATtiny2313/V[5]
  • ATtiny24/ATtiny44/ATtiny84[6]
  • ATtiny24A/ATtiny44A/ATtiny84A[7]
  • ATtiny25/V / ATtiny45/V / ATtiny85/V[8]
  • ATtiny261/V ATtiny461/V ATtiny861/V[9]

Литература[править | править код]

  • А. В. Белов. 6.14. Встроенная система отладки debugWIRE // Самоучитель разработчика устройств на микроконтроллерах AVR. — СПб.: Наука и Техника, 2008. — С. 508—517. — 544 с. — ("Радиолюбитель"). — ISBN 978-5-94387-363-8.

Примечания[править | править код]

  1. Datasheet: ATmega48/V ATmega88/V ATmega168/V - Atmel. Дата обращения: 8 марта 2016. Архивировано из оригинала 17 октября 2013 года.
  2. Datasheet: ATmega48A/PA/88A/PA/168A/PA/328/P. Дата обращения: 8 марта 2016. Архивировано 8 марта 2016 года.
  3. Datasheet: ATtiny13 - Atmel. Дата обращения: 8 марта 2016. Архивировано 25 марта 2016 года.
  4. Datasheet: ATtiny1634 - Atmel. Дата обращения: 8 марта 2016. Архивировано 8 марта 2016 года.
  5. Datasheet: ATtiny2313 - Atmel. Дата обращения: 8 марта 2016. Архивировано 6 марта 2016 года.
  6. Datasheet: ATtiny24/ATtiny44/ATtiny84 - Atmel. Дата обращения: 8 марта 2016. Архивировано 4 марта 2016 года.
  7. Datasheet: ATtiny24A/44A/84A - Atmel. Дата обращения: 8 марта 2016. Архивировано 5 марта 2016 года.
  8. Datasheet: ATtiny25/V / ATtiny45/V / ATtiny85/V - Atmel. Дата обращения: 8 марта 2016. Архивировано 9 марта 2016 года.
  9. Datasheet: ATtiny261/V ATtiny461/V ATtiny861/V - Atmel. Дата обращения: 8 марта 2016. Архивировано 8 марта 2016 года.

Ссылки[править | править код]