Программа dScope51





           Обзор
           Описание главного окна
           Описание окна отладки
           Описание окна регистров
           Описание окна памяти
           Описание окна команд
           Пример работы с программой dScope51




Обзор

       DScope51 - программный отладчик, который моделирует аппаратные средства микроконтроллеров семейств MCS 51, MCS 251 и 80C166 и может выполнять все машинные команды. Для запуска программы необходимо запускать файл Dsw51.exe. Моделирование интегрированных периферийных устройств осуществлено посредством загружаемых драйверов. Это делает программу dScope51, способной к полному моделированию интегрированных аппаратных средств различных типов микроконтроллеров указанных серий. Соответствующий драйвер существует для каждого поддерживаемого типа микроконтроллера. dScope51 состоит из нескольких пользовательских окон (см. рис. 2.1) с настраиваемой


Рис. 2.1 - Окна программы dScope51

конфигурацией. Сделать окно активным можно щелкнув клавишей мыши в пределах окна или переключиться между окнами используя сочетание клавиш Ctrl+Tab. Далее будет представлено краткое описание окон, которые будут применяться в ходе выполнения лабораторных работ.

Окно dScope (главное окно программы)

       Окно dScope (см. Рис. 2.2) является родительским окном для всех остальных окон программы dScope51, т.е. при его закрытии закрываются все окна программы dScope51.


Рис. 2.2 - Главное окно программы dScope51

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


Окно Debug (Окно отладки)

       Окно отладки (см. Рис. 2.3) предназначено для отображения исходного текста загруженной программы.


Рис. 2.3 - Окно отладки программы dScope51

Окно отладки имеет свое собственное меню, панель управления и строку статуса. В этом окне можно запускать программу на выполнение, или выполнять пошаговую проверку программы. Также в этом окне можно выполнять редактирование текста программы, но без возможности сохранения.


Окно Command (Окно команд)

       Окно Command (см. Рис. 2.4) содержит командную строку которая предназначена для ввода команд.


Рис. 2.4 - Командное окно программы dScope51

Также в окне Command происходит вывод результатов выполнения команд и типы ошибок, которые возникают в процессе работы с программой. Командно окно содержит строку статуса, в которой отображается короткая поясняющая информация.


Окно Register (Окно регистров)

       Окно регистров (см. Рис. 2.5) отображает текущие значения регистров микроконтроллера.


Рис. 2.5 - Окно регистров программы dScope51

Набор регистров зависит от типа выбранного микроконтроллера. Значения регистров обновляются каждый раз когда останавливается выполнение программы или когда окно регистров выбрано. Также обновить значения регистров можно двойным нажатием левой кнопки мыши в области окна регистров.


Окно Watch (Окно просмотра)

       Окно просмотра (см. Рис. 2.6) предназначено для того чтобы показывать значения переменных определенных пользователем в программе,


Рис. 2.6 - Окно просмотра программы dScope51

а также для отображения регистров которых нет в окне регистров. Этим окном удобно пользоваться при пошаговой отладке программы. Значения символов в окне просмотра обновляется при изменении любого символа содержащегося в окне. При этом измененный символ будет выделен красным цветом.


Окно Memory (Окно отображения памяти)

       Окно Memory (см. Рис. 2.7) используется для того, чтобы отображать определенный диапазон памяти в виде байтовых ячеек записанных в шестнадцатеричном коде.


Рис. 2.7 - Окно отображения памяти программы dScope51

Диапазон памяти, который может быть отображен в окне Memory не должен превышать 64 Кб. Окно отображения памяти обновляется при любом изменении ячейки памяти из заданного диапазона.


Окно Symbols (Окно просмотра символов)

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


Рис. 2.8 - Окно просмотра символов программы dScope51


Окно Call-Stack (Окно просмотра стека)

       Окно просмотра стека (см. Рис. 2.9) предназначено для показа текущей вложенности вызванных подпрограмм.


Рис. 2.9 - Окно просмотра стека программы dScope51

Функция вызова подпрограммы отображается в нижней части окна. Кнопка Refresh позволяет обновить информацию в окне, когда идет выполнение программы. При нажатии на кнопку Show Invocation в окне Debug отображается код который вызвал выбранную подпрограмму.


Описание главного окна

Меню

Таблица 2.1 - Меню File (Файл) главного окна программы dScope51
Пункт меню Описание
Load object file... Загрузить объектный файл
Load CPU driver... Загрузить драйвер микроконтроллера
Exit Выход из программы


Таблица 2.2 - Меню View (Вид) главного окна программы dScope51
Пункт меню Описание
Toolbar Показать/Скрыть панель управления
Status Bar Показать/Скрыть строку состояния
Register window Показать/Скрыть окно регистров
Debug window Показать/Скрыть окно отладки
Command window Показать/Скрыть окно команд
Watch window Показать/Скрыть окно просмотра
Memory window Показать/Скрыть окно отображения памяти
Symbol window Показать/Скрыть окно отображения символов
Call-Stack Показать/Скрыть окно отображения стека


Таблица 2.3 - Меню Setup (Установки) главного окна программы dScope51
Пункт меню Описание
Colors and fonts... Установки цветов и настройки шрифтов для любого окна программы dScope51
Update Memory window Разрешение/Запрещение периодического обновления окна Memory
Update Watch window Разрешение/Запрещение периодического обновления окна Watch
MCS 51 Registers Конфигурирует окно отображения регистров. Отображается набор регистров характерный для микроконтроллеров серии MCS-51
MCS 251 Registers Конфигурирует окно отображения регистров. Отображается набор регистров характерный для микроконтроллеров серии MCS-251
Breakpoints... Активизирует диалоговое окно Breakpoint. Подробнее смотрите в главе Диалоговые окна
Watchpoints... Активизирует диалоговое окно Watchpoint. Подробнее смотрите в главе Диалоговые окна
Memory map... Активизирует диалоговое окно Memory. Подробнее смотрите в главе Диалоговые окна
Setup Performance Analyzer... Активизирует диалоговое окно Performance Analyzer Setup. Подробнее смотрите в главе Диалоговые окна
Reset Сброс драйвера текущего микроконтроллера. Аналогичен аппаратному сбросу реального микроконроллера


Таблица 2.4 - Меню Help (Справка) главного окна программы dScope51
Пункт меню Описание
Index Вызов справки
Using Help Вывод инструкции по использованию справки
About Информация о версии программы и фирме изготовителе

       При выборе определенного типа микроконтроллера (см. следующую главу), появляется еще один пункт меню, которого нет при начальной загрузке программы dScope51. Это пункт меню Peripherals (периферийное оборудование). Пункты этого меню вызывают различные диалоговые окна для настройки периферийных устройств микроконтроллера, таких как таймеры, порты, система прерываний и т.п.


Панель управления

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

Таблица 2.5 - Кнопки панели управления
Изображение кнопки Описание кнопки
Открывает диалоговое окно Load Object File (загрузить обьектный файл)
Показать/Скрыть окно команд
Показать/Скрыть окно отладки
Показать/Скрыть окно регистров
Показать/Скрыть окно просмотра
Показать/Скрыть окно отображения памяти
Показать/Скрыть окно отображения символов
Показать/Скрыть окно отображения стека
Сброс драйвера микроконтроллера
Показать информацию о программе


Описание окна отладки

       Окно отладки является наиболее часто используемым окном, так как именно в нем отображается загруженная программа и ползователь может провести ее проверку и отладку. Окно содержит меню, панель управления, строку состояния и панель диалоговых кнопок. Панель управления и панель диалоговых кнопок дублируют наиболее часто используемые команды меню. Строка состояния разделена на три области. Первая область отображает справочную информацию о выбранном пункте меню, вторая область показывает режим отображения текста программы и третья область отображает текущее состояние программы пользователя: запуск или останов.


Меню

Таблица 2.6 - Меню Command (Команды) окна отладки программы dScope51
Пункт меню Описание
View High level
View Mixed
View Assembly
View Trace Records
Select source module
Inline assemble Отобразить окно встроенного ассемблера
Find... Вывести на экран диалоговое окно поиска текста в программе
Show Dialogbar Показать/Скрыть панель диологовых кнопок
Show Statusbar Показать/Скрыть строку состояния
Show Toolbar Показать/Скрыть панель управления
Record trace Разешить/Запретить запись трассировки
Set log start line
Perform File log

       Остальные пункты меню представлены в таблице 2.7.

Таблица 2.7 - Меню окна отладки программы dScope51
Пункт меню Описание
Go! Начать выполнение программы пользователя со значения текущего программного счетчика
GoTilCurs! Начать выполнение программы пользователя со значения текущего программного счетчика. Программа прерывает свое выполнение в точке останова. Точка останова устанавливается двойным нажатием левой кнопки мыши на нужной строке.
StepOut! Начать выполнение программы со значения текущего счетчика и остановить программу когда текущая функция завершиться и вернет в программу вычисленные параметры.
StepInto! Программа выполняет одну инструкцию с заходом в подпрограммы
StepOver! Программа выполняет одну инструкцию не заходя в подпрограммы
Stop! Остановить выполнение программы


Панель управления

Таблица 2.8 - Кнопки панели управления
Изображение кнопки Описание кнопки
Начать выполнение программы пользователя со значения текущего программного счетчика
Начать выполнение программы пользователя со значения текущего программного счетчика. Программа прерывает свое выполнение в точке останова. Точка останова устанавливается двойным нажатием левой кнопки мыши на нужной строке.
Программа выполняет одну инструкцию с заходом в подпрограммы
Программа выполняет одну инструкцию не заходя в подпрограммы
Начать выполнение программы со значения текущего счетчика и остановить программу когда текущая функция завершиться и вернет в программу вычисленные параметры.
Остановить выполнение программы
Просмотреть запись трассировки
Вывести на экран диалоговое окно поиска текста в программе


Описание окна регистров

       Окно регистров применяется для отображения значений регистров микроконтроллера, дополнительной информации о количестве циклов выполненных до текущей команды, и о времени выполнения инструкций, вычисленного в зависимости от установленного значения частоты кристалла микроконтроллера. Набор регистров отображаемый в окне зависит от семейства микроконтроллеров. Соответствующий набор автоматически выбирается при загрузке драйвера микроконтроллера, но может быть в любое время изменен путем выбора в меню Setup главного окна соответствующего пункта. Первые четыре строки окна (см. Рис. 2.5) отображают регистры R0-R15, где регистр R11 является регистром-аккумулятором A. Следующие четыре линии отображают шестнадцатиразрядные регистры WR16-WR30. Следует помнить, что регистры WR0-WR14 накладываются на байтовые регистры R0-R15. Например, значения байтовых регистров R0=0x1Ah и R1=0x22h могут быть представлены одним регистром слова WR0=0x1A22h. Далее в окне отображения регистров отображены указатель данных DPTR и указатель стека SP. PSW и PSW1 - это регистры статуса микроконтроллера. В строке $ отображается текущее значение программного счетчика, в строке Sts - количество выполненных циклов, а в строке Sec - общее время выполнения команд. Для драйвера 80251s частота равна 16 МГц. Значение регистра можно изменить, используя окно команд. Для этого необходимо ввести в окне команд соответствующие выражения, как показано в примерах приведенных ниже:

    A=0xFE - присвоить аккумулятору значение 0xFE
    DPTR=0x1234 - присвоить значение 0xFE регистру DPTR
    R1=0xfd, R10=0, wr16=0x1234 -присвоить значения нескольким регистрам сразу
    R1 += R4 - прибавить к регистру R1 значение регистра R2



Описание окна памяти

       Окно отображения памяти используется для того, чтобы отображать определенный диапазон памяти в виде байтовых ячеек записанных в шестнадцатеричном коде. Адресный интервал который будет отображен в окне задается командой D. Эта команда должна быть введена в окне команд (смотрите далее) как показано в приведенных ниже примерах:

    >D I:0x00, I:0xFF - Внутренняя память данных
    >D X:0xFF0000, X:0xFFFFFF - Внешняя память программ
    >D X:0x010000, X:0x01FFFF - Внешняя память данных
       Задать можно любой диапазон от 0 до 64 Кбайт. Если во время выполнения команды окно просмотра памяти скрыто, то область памяти будет отображена в командном окне. Содержание окно просмотра памяти обновляется каждый раз, когда выполнение программы остановлено. Например, после команд StepInto, StepOut, StepOver, а также после команды Stop. Также обновление окна происходит при двойном нажатии левой кнопки мыши в области окна. Предусмотрено также периодическое обновление окна памяти во время выполнения программы (после запуска командой Go). Для этого необходимо активизировать свойство Update Memory в меню Setup главного окна программы dScope51.



Описание окна команд

       Окно команд применяется для ввода команд программы dScope51. Результаты выполнения многих команд также отображаются в этом окне. Хотя большинство команд могут быть выполнены при помощи различных диологовых окон, окно команд поддерживает выполнение всего набора команд программы dScope51.
       Окно команд имеет два буфера истории - один для хранения и отображения команд, а второй для хранения и вывода команд в командной строке. Буфер хранения командной строки может хранить до 64 введенных строк. Любая выполненная команда может быть извлечена из буфера и выполнена повторно. Перемещение по буферу истории команд реализуется с помощью клавиатурных клавиш Cursor-Down и Cursor-Up, при этом следует помнить, что ключ ScrollLock должен быть неактивным. Перемещение по буферу истории выполненных команд и их результатов осуществляется с помощью кнопок PgDown, PgUp, Cursor-Up (при включенном ScrollLock) и Cursor-Down (при включенном ScrollLock).
       В окне команд также присутствует строка состояния, которая состоит из четырех частей (панелей). В первой части отображается вспомогательная информация о синтаксисе команд. Во второй части отображается надпись TAB если пользователь имеет возможность нажимая клавишу TAB просматривать в первой части строки статуса доступные команды или их возможный синтаксис. Третья панель отображает режим редактирования командной строки. Если отображается выражение Ins, то это режим вставки, а если OVR, то режим замены. Четвертая часть строки статуса показывает состояние режима ScrollLock.Если отображается выражение SCRL, то режим включен, если ничего не отображается, то режим выключен.
       При наборе команд происходит динамическое отображение справки в строке состояния для упрощения ввода команд. При наборе первых букв команды в строке состояния отображаются возможные команды, которые начинаются с этих букв. Например, если набрать в командной строке символ E, то в первой части строки состояния будут отображены команды начинающиеся с этой буквы: EVALuate и Exit. Теперь если донабрать в командной строке букву v, то останется единственный вариант - команда EVALuate. Но вводить эту команду до конца не обязательно. Достаточно нажать клавишу Пробел и команда автоматически отобразится в командной строке. Когда команда введена, в строке состояния отображается информация о возможном синтаксисе команды.
       С помощью командной строки можно назначить наиболее часто используемые команды клавишам F1-F12. Для этого используется команда Set.
       Пример:

    SET F1 = "D 0x00, 0xFF" - после ввода этой команды, при нажатии клавиши F1 окно отображения памяти будет отображать диапазон памяти 00-FF.
    SET F2 = "D 0xFFFF00, 0xFF0000" - после ввода этой команды, при нажатии клавиши F2 окно отображения памяти будет отображать диапазон памяти FF0000-FFFFFF.
Назначения команды SET сохраняются в конфигурационных файлах и нет необходимости вводить назначения заново при новом запуске программы. Теперь простым нажатием клавиш F1 и F2 можно переключаться между этими диапазонами памяти. Клавиши F1-F12 работают в любом окне программы dScope51.



Пример работы с программой dScope51

       В данном разделе будут описаны стандартные методы работы с программой dScope51. В качестве отлаживаемой программы будем использовать программу скомпилированную в разделе Пример реализации задания. Первое что нужно сделать после запуска программы - это установить тип микроконтроллера. Для этого на панели управления главного окна в раскрывающемся списке выбираем библиотеку описывающую нужный нам тип микроконтроллера. Для выполнения данного курса лабораторных работ выбираем библиотеку 80251s.dll. Это библиотека содержит описание микроконтроллеров 80251SA, SB, SQ, SP. После этого в меню Peripherals =>System Conf. необходимо выбрать режим работы микроконтроллера: исходный или бинарный. Режим работы должен совпадать с режимом в котором компилировался файл. Для нашего случая выбираем Source Mode (исходный режим). На панели управления окна отладки в раскрывающемся списке режимов отображения текста программы, выбираем режим ASM. Теперь можно открыть нашу программу нажав на панели управления главного окна на значок - Open (Открыть), или используя пункт меню File=>Load Object File.... Загружать необходимо файл с расширением *.hex. Теперь можно просмотреть последовательность выполнения инструкций программы используя пошаговую отладку т.е. нажимая на панели управления окна отладки кнопку - StepInto или нажимая комбинацию клавиш Alt + S. В окне просмотра регистров можно наблюдать изменения значения регистров используемых в программе. Открыв окно просмотра стека можно увидеть как при вызове процедуры (команда ACALL 0xFF0005), в стек записываются 16 разрядов адреса следующей команды, а по команде RET происходит очистка стека с возвратом к следующей после вызова команде. Если требуется изменить какую-нибудь команду программы, то необходимо открыть окно встроенного ассемблера выбрав пункт меню Commands=>Inline assemble.... Например, изменим первую строчку программы mov R2,#0x05 на mov R2,#0x04. Для этого в поле disassemble выполним двойное нажатие левой кнопки мыши на нужной строке, и увидим, что данная команда появилась в поле Enter MCS-251 inctruction:. Проведем редактирование команды в этом поле, нажмем кнопку Assemble и закроем окно встроенного ассемблера.


Содержание      В начало документа      Следующий раздел