На сайт "Мир микроконтроллеров"   Закрыть окно помощи

 

FUSE калькулятор
Страница помощи

 

Внутрисхемный отладчик debugWIRE.

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

DWEN

Если FUSE-переключатель разрешения работы системы debug WIRE (DWEN) запрограммирован (т. е. равен нулю), а биты блокировки микросхемы LB1 и LB2 не запрограммированы, включается система отладки debugWIRE.

Вывод RESET в этом режиме представляет собой двунаправленную открытую шину ввода—вывода (с открытым стоком) с подключенным внутренним резистором нагрузки. Эта шина становится шлюзом для обмена информации между отлаживаемой микросхемой и схемой сопряжения с компьютером (эмулятором). Посредством этого интерфейса работа микросхемы берется под контроль отладочной следы, например AVR Studio®. Среда автоматически запускает программу на выполнение, в момент остановки программы получает значение всех его регистров. Система поддерживает автоматическую простановку точек останова.

OCDEN

В некоторых моделях AVR система отладки включается при помощи FUSE переключателя OCDEN. Это общий переключатель, включающий режим отладки как по debugWIRE, так и по JTAG.

Точки останова программы

Режим debugWIRE поддерживает программные точки останова, которые формируются при помощи специальной команды Break, входящей в систему команд AVR. При создании точки останова в среде программирования AVR Studio® в программный код, предназначенной для отладки программы автоматически в нужном месте вписывается команда BREAK. Затем измененная программа, содержащая в нужных местах команды BREAK, помещается в программную память микроконтроллера (перепрошивается). При этом команда, заменяемая на BREAK, сохраняется в памяти компьютера.Контроллер начинает выполнять программу и приостанавливается в том месте, где стоит BREAK. По команде BREAK микроконтроллер останавливается и посылает в AVR Studio® сигнал подтверждения останова.Получив эту команду AVR Studio® считывает значение всех регистров и отображает из в привычном нам виде.

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

Особенностью данной технологии является то, что память программ должна перепрограммироваться каждый раз, когда изменяется размещение точек останова. Среда AVR Studio делает это автоматически посредством debugWIRE-интерфейса. Использование программных точек останова уменьшает возможное количество циклов записи/стирания для программной памяти микроконтроллера. Поэтому при отладке программ подобным способом нужно постоянно следить, чтобы отладчик не израсходовал все ресурсы вашей микросхемы.

Ограничения режима debugWIRE

Вывод микросхемы, обеспечивающий режим debugWIRE (dW), физически объединен с входом внешнего сброса (RESET). Поэтому при использовании режима debugWIRE невозможна если вам необходим внешний сброс.

Система debugWIRE позволяет программе в процессе отладки точно выполнять все функции ввода—вывода и соблюдать все временные соотношения. То есть скорость выполнения программы в режиме отладки не отличается от скорости в реальном режиме работы. Но в тот момент, когда центральный процессор остановлен, необходимо соблюдать осторожность при обращении через отладчик (AVR Studio) к различным регистрам ввода—вывода, чтобы не нарушить работу системы. Подробное описание всех правил работы с регистрами в режиме debugWIRE можно найти в специальной документации по этому режиму. Ее можно найти на сайте фирмы Atmel.

Если fuse-переключатель DWEN запрограммирован (режим debugWIRE включен), то некоторые тактовые сигналы микроконтроллера не отключаются даже в спящих режимах, что увеличивает потребляемую мощность. Поэтому, когда режим debugWire вам больше не нужен, не забывайте перевести в исходное состояние FUSE - переключатель DWEN.

Рекомендации по применению

Уверяю вас, что внутрисхемная отладка как при помощи debugWIRE, так и при помощи JTAG интерфейсов нужна только профессиональным разработчикам при разработке и доводке промышленных образцов, управляющих сложными высокотехнологичными системами. Начинающие и самодеятельные разработцики вполне обойдутся отладчиками с программной эмуляцией. Поэтому этот режим рекомендую не включать. Поэтому оставляйте DWEN (OCDEN) в незапрограммированном состоянии.