Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Поляков2.doc
Скачиваний:
7
Добавлен:
24.08.2019
Размер:
176.64 Кб
Скачать

Вид главного меню (первый уровень)

Рисунок А.1 - Вид главного меню (первый уровень)

Вид главного меню (второй уровень)

Рисунок А.2 - Вид главного меню (второй уровень)

Далее приведено описание основных команд управления:

Dump - конфигурация окон памяти данных. Возможен выбор первого или второго окна памяти, переход на адрес, начиная с которого будут отображаться данные внутренней памяти данных микроконтроллера (под-пункт Absolute), выделение данных по адресу, вычисляющемуся путем сложения содержимого указываемого регистра и смещения (подпункт Indirect).

Expression - позволяет в режиме меню изменять содержимое того объекта (регистра, бита, порта или ячейки памяти данных), на который указывал курсор в режиме экрана (имя объекта выводится в строке-подсказке).

commandFile – сохранение и загрузка предварительно сохраненных в файле последовательностей нажатий клавиш. Имя файла указывается при выборе подпункта Open; подпункт Close сигнализирует об окончании сохранения последовательности; подпункт Load загружает файл с предварительно сохраненной последовательностью, после чего имитируются нажатия соответствующих клавиш, и предлагается открыть новый файл.

Help - предоставляет справочную информацию о синтаксисе команд (подпункт Commands), назначении клавиш в режиме экрана (подпункт Display), назначении функциональных клавиш (подпункт Simulation), а также информацию об эмуляторе-отладчике AVSIM51 и эмуляторах-отладчиках для других микроконтроллеров (подпункт Avocet).

Load - загрузка объектных файлов и таблиц символов. Позволяет загружать объекты формата AVOCET (файлы с расширением .prn) (подпункт Avocet), объекты в ОЗУ (подпункт Data) или ПЗУ (файлы с расширением .hex) (подпункт Program и rOm), таблицы символов из .prn-файлов (подпункт Symbol-table).

Memory - позволяет очищать указанные области памяти данных (под-пункт Clear), заполнять их определенным символом (подпункт Fill), копировать данные из одной области в другую (подпункт Move), производить поиск данных в указываемом диапазоне (подпункты Search и searchNext).

Patсh - дает возможность изменять содержимое программной памяти по адресу, содержащемуся в счетчике команд РС (подпункт patchCode), a также создавать текстовые файлы с ассемблерными программами (подпункты Open outputfile и Closefile).

Quit - выход в DOS.

Reset - начальная инициализация микроконтроллера (подпункт Сpu), при этом обнуляются аккумулятор, регистр состояния PSW, счетчик команд PC, регистр адреса памяти DPTR, регистры управления последовательным портом SCON, потреблением мощности PCON, таймерами-счетчиками TCON и TMOD, а также счетчик количества выполненных машинных циклов; останов подсчета количества выполненных циклов без сброса счетчика в ноль (подпункт cYcles), подсчет возобновляется при выборе подпункта с тем же именем в пункте меню Set. Также существует возможность очистки либо всех установленных пользователем точек прерывания и точек прохода (подпункт All), либо точек прерывания и точек прохода определенного типа (подпункт Breakpoints), при возможно общее (подпункт All) или выборочное (под-пункты Kill и Next), удаление таких точек прерывания.

Set - позволяет определять области программной памяти и памяти данных (подпункт Memory-map), устанавливать точки прохода (подпункт Passpoint), инициализировать или перезапускать счетчик машинных циклов (подпункт cYcles), определять точки прерывания различных типов - динамических (подпункт Dynamic), автоматически очищаемых после останова, статических (подпункт Sticky), сбрасываемых только с помощью пункта меню Reset и точек прерывания по мнемонике команд (подпункт Opcode). Кроме того можно установить дополнительные ограничивающие условия для точек прерывания и прохода (подпункт Conditional).

View - предоставление информации об установленных точках прерывания (подпункт Bkpts), точках прохода (подпункт Passpts), точках прерывания по мнемонике (подпункт Opc-traps), определенном пространстве памяти (подпункт Memory-map). Также пользователь может получить справку о регистрах микроконтроллера МК51 (подпункт Symbols|Registers), и их адресах (подпункт Symbols|SFR), системных и пользовательских метках (подпункт Symbols|Code), именах регистров, составляющих младшие 32 байта внутренней памяти данных (подпункт Symbols|Data), именах битов и их адресах (подпункт Symbols|Bit), а также совокупную информацию из подпунктов Code, Data и Bit в алфавитном порядке (подпункт Symbols|Al-pha).

eXecute - непосредственное выполнение вводимой команды без ее запоминания в памяти программ.

Несмотря на имеющуюся возможность создания ассемблерных программ (плохо развитую и более пригодную для исправления, добавления, удаления одиночных команд) непосредственно в среде эмулятора-отладчика AVSIM51, предпочтительнее исходные программные коды набирать в любом текстовом редакторе (например, в редакторе Norton Commander) и сохранять в файлах с обязательным расширением .asm.

При этом, во избежание конфликтов пользовательской программы с системными прерываниями микроконтроллера МК51, начальный адрес программы должен быть не менее 33Н.

Например: ORG 00H

JMP LABEL

ORG 33H

LABEL: текст

программы

Компилятор программ восприимчив к регистру букв, поэтому текст программы должен быть набран в режиме верхнего регистра.

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

Программа должна обязательно оканчиваться командой END и символом перевода строки (EOF).

Длина метки не должна превышать 8 символов.

Компиляция исходного .asm-модуля осуществляется путем вызова в командную строку DOS программы XASM51.COM c параметром, в качестве которого выступает имя файла с текстом программы.

Пример: XASM51 MYFILE.ASM

Результатом компиляции является создание файлов с расширениями .prn, .hex.

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

HEX-файл содержит исходный текст программы, преобразованный в машинные коды.

Запуск эмулятора-отладчика AVSIM51 производится путем вызова в командную строку его исполняемого модуля AVSIM51.EXE. При запуске возможно указание следующих ключей:

-d0 - реализация совместимости с адаптером монитора;

-d1 - совместимость BIOS (по умолчанию);

-d2 - совместимость с PC DOS;

-c0 - поддержка цветного режима CGA;

-c1 - поддержка цветного режима EGA.

Далее пользователю предоставляется возможность выбора одного из шести микроконтроллеров семейства МК51:

A - 8051/8751 B - 8052/8752 C - 8031

D - 8032 E - 80C51 F - 80C31

Для удобства и быстрого запуска AVSIM51 целесообразно создать пакетный (.bat) файл с командой:

AVSIM51 [ключ] A|B|C|D|E|F

После этого выполняется краткая процедура определения памяти данных. В программной памяти проставляются системные метки.

Загрузка программы в программную память производится с помощью подпунктов AVOCET и PROGRAM главного пункта меню LOAD. При этом в первом случае необходимо указывать файл с расширением .hex, а во втором - .prn.

Работа с программой может вестись в двух режимах: меню и экрана. В режиме меню управление процессом эмуляции и отладки производится путем последовательного выбора и следующего за этим исполнения пункта меню.

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

 - перемещение на одну позицию вправо;

 - перемещение на одну позицию влево;

 - перемещение на одну строку вниз;

 - перемещение на одну строку вверх;

Номе - на первый символ окна;

End - на последний символ окна;

PgDn - пролистать на окно вниз;

PgUp - пролистать на окно вверх.

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

Ctrl+ - на одно окно вправо;

Ctrl+ - на одно окно влево.

Кроме того существует возможность быстрого доступа к отдельным объектам с помощью ускоряющих последовательностей:

Ctrl+A - аккумулятор;

Ctrl+B - регистр В;

Ctrl+P - счетчик команд;

Ctrl+S - указатель стека;

Ctrl+R - окно регистров;

Ctrl+D - указатель данных DP;

Ctrl+X|C|F|O - флаги: С, АС, F0, OV;

Ctrl+I - разрешенные прерывания;

Ctrl+T - нулевой таймер-счетчик;

Alt+07 - регистры с нулевого по седьмой;

Alt+A - первое окно области данных;

Alt+B - второе окно области данных;

Alt+P - первый параллельный порт ввода-вывода;

Alt+Q - второй параллельный порт ввода-вывода;

Alt+S - регистр-защелка последовательного порта SBUF;

Alt+C - регистр управления последовательным портом SCON;

Alt+Y - счетчик машинных циклов.

Клавиши редактирования:

Gray + - инкремент текущего байта, слова, флага;

Gray – - декремент текущего байта, слова, флага;

Ins - инвертирование в текущей позиции (0-1 в бинарных областях, 0-F в шестнадцатеричных);

Ctrl+End - очистить объект до конца;

Ctrl+Home - очистить весь объект.

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

F1 - запуск программы; выполнение осуществляется ближайшего отладочного сообщения, либо до нажатия клавиши F1;

F10 - пошаговое выполнение программы;

F9 - возвращение на шаг назад с возобновлением состояния регистров, портов, битов (система запоминает 37 шагов);

F2 - перемещение указателя динамических точек прерывания на команду назад;

F4 - перемещение на команду вперед;

F3 - установка точки прерывания в позиции указателя;

F5 - управление скоростью выполнения программы (возможны три состояния: LOW, MIDDLE и HIGH);

Alt+F5 - метки в программной памяти и в командах заменяются их адресами и наоборот;

F7 - переключение типа курсора: Hex, ASCII, Binary; при этом в пределах объекта курсор устанавливается в область, соответствующую его текущему типу.

Функции клавиши F5 выполняются только в режиме экрана. Вызов остальных функциональных клавиш можно осуществлять в обоих режимах.

AVSIM51 предоставляет следующие средства отладки программ: точки прерывания, точки прохода, точки прерывания по мнемонике команды и счетчик выполненных машинных циклов.

Точки прерывания предназначены для останова выполнения программы и контроля за состоянием микропроцессора. Точки прерывания бывают двух видов: динамические (Dynamic) и статические (Sticky).

Динамические точки прерывания автоматически уничтожаются после останова, а статические сбрасываются при перезагрузке микроконтроллера (команда CPU пункта меню Reset) или при их удалении (RESET BREAKPOINTS в пункте меню Reset).

Точку прерывания можно установить как по конкретному адресу, так и в их диапазоне. Останов может выполнятся либо только при записи по указанному адресу, либо по любому доступу. Перед установкой точки прерывания можно задать дополнительное условие останова: совпадение отслеживаемого значения с непосредственно заданным; со значением, содержащимся по указанному адресу; с числом, заданным по маске (0 - нулевое значение, 1 - единица, х - любое значение); при попадании в указанный диапазон.

Разновидностью точки прерывания являются так называемые точки прерывания по мнемонике команд, основное значение которых - остановка работы программы при попытке выполнения указанной команды.

Еще одно средство отладки - точки прохода. Они не делятся на динамические и статические, а в остальном их классификация аналогична точкам прерывания. Их назначение - подсчет количества возникновения определенных ситуаций (выполнения заданной команды, попытка доступа к определенной ячейке). Дополнительные условия к точкам прохода устанавливаются так же как и к точкам прерывания. Количество проходов, зафиксированных данным средством отладки, можно просмотреть с помощью подпункта Passpts пункта меню View. Эта информация может быть полезна при отладке циклических алгоритмов.

С целью предоставления пользователю информации о времени выполнения микроконтроллером программы, подпрограммы или отдельной команды предусмотрен счетчик машинных циклов. Он активизируется в пункте меню Set, а временный его останов выполняется в пункте Reset (при этом содержимое счетчика сохраняется). После этого счетчик снова можно активизировать. Сброс в ноль осуществляется при перезагрузке микроконтроллера (Reset, CPU).

Также к средствам отладки можно отнести имеющуюся возможность изменения синтаксиса команд. Однако при выходе из среды отладчика сделанные в программе изменения не сохраняются на диске.