Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП МПУ-13.doc
Скачиваний:
3
Добавлен:
07.01.2020
Размер:
5.78 Mб
Скачать

2.5. Средства отладки для выявления логических и схемотехнических ошибок

Основные способы и средства отладки (Debug).

1. Отладка с использованием программной модели МК (симулятор) – самый дешевый способ, его полнота ограничена возможностями программной модели.

2. Отладка с использованием внутрисхемного эмулятора (In Circuit Emulator - ICE) – ранее самый дорогой, но высокоэффективный инструмент отладки. Сейчас цена значительно снижена благодаря внедрению в кристалл МК средств специализированных интерфейсов типа JTAG или ONE, поддерживающих основные команды отладки средствами внутри кристалла..

3. Отладка с использованием схемно-программной модели МК в среде моделирования электронных устройств ProteusVSM.

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

Симуляторы.

Процесс отладки в симуляторе предполагает выполнение разработанной программы в пошаговом или более быстром темпе, наблюдение изменения состояния ячеек памяти, регистров ввода/вывода, воздействие на модель, посредством изменения состояния ячеек памяти или регистров ввода/вывода.

Наиболее функционально полным для МК семейства AVR следует признать симулятор в среде программирования и отладки AVR_Studio. Он моделирует работу как устройств ядра (процессор и все виды памяти), так и ряда встроенных периферийных устройств, прежде всего портов ввода/вывода, таймеров/счетчиков, некоторых последовательных интерфейсов.

Состояние регистров ввода/вывода можно наблюдать и изменять в окне IO, вызываемом по команде View/New IO View. В этом окне доступен поразрядный, т. е. битовый режим индикации. Пустой квадратик подразумевает «0», «галочка» в квадратике – «1», при помещении курсора на квадратик и нажатии левой кнопки мыши содержимое квадратика инвертируется. Таким образом, в пошаговом режиме можно имитировать внешние сигналы на входах МК (изменяя требуемым образом состояние битов регистра входов PINx).

Такой способ становится слишком трудоемким, когда необходимо симулировать большое количество изменений состояния входов, да еще и повторять эту последовательность многократно. Для таких задач в AVR Studio предусмотрено использование внешних файлов входных воздействий. Формат файла входного воздействия очень прост:

0000000000:00

0000000039:01

0000000040:00

9999999999:FF

Здесь значение, указанное после разделителя «:», — это шестнадцатеричное представление сигналов, воздействующих на порт микроконтроллера. Значение, указанное до разделителя, — это десятичный номер цикла (с момента сброса микроконтроллера), в котором указанное воздействие поступает на выводы порта микроконтроллера. Файл входного воздействия должен заканчиваться строкой с заведомо большим номером цикла, в противном случае будет выдано сообщение об ошибке. Для подключения файла входного воздействия служит пункт меню Options / Simulator Port Stimuli. В открывшемся окне нужно указать порт микроконтроллера, на который нужно подавать воздействие, и файл этого воздействия.

Пользователь также может записывать изменения значений на выходах портов микроконтроллера в файл (формат этого файла тот же, что и у файла входных воздействий). Для записи служит пункт меню Options / Simulator Port Logging. В открывшемся окне нужно указать порт микроконтроллера и имя файла для записи. Записываемый файл будет удаляться и создаваться вновь при каждом выполнении сброса микроконтроллера (Debug / Reset). Для закрытия файла требуется закрыть проект командой Project / Close.

Подключать файл входного воздействия или задавать имя файла для записи пользователь должен сам при каждом запуске симулятора.

Для просмотра в симуляторе AVR Studio длительных процессов пошаговые команды выполнения (Trace into, Step Over) не эффективны. Целесообразно использовать многошаговые команды: многошаговая с заданным числом шагов (Multi Step), автошаговая с заданным временным шагом (Auto Step), выполнение до курсора (Run To Cursor), движение (Go) до команды останова со стороны оператора (Break) или до точки прерывания (Breakpoints). Некоторые параметры этих команд задаются в окне Debug Option, для управления точками прерывания служит меню Breakpoints.