ПРАКТИКУМ ПО ОМПТ. Практикум по основам микропроцессорной техники Саранск 2003 удк 004. 384 378. 146147
Скачать 0.74 Mb.
|
3.2. КРОСС-СРЕДСТВА ОТЛАДКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯКросс-средства AV созданы для отладки программного обеспечения нескольких наиболее распространенных микропроцессоров и однокристальных микроконтроллеров. Комплекс отладочных программ для каждого микропроцессора состоит из трех однотипных программ - программы ассемблера AVMAC, редактора связей AVLINK, программного эмулятора AVSIM. Названия программ в каждом комплексе дополняются условным обозначением соответствующего микропроцессора, например, AVMAC85, AVSIM48 и т. п. Если ассемблеры различных микропроцессоров одинаковы или один является расширенной версией другого, то комплекс отладочных средств создавался для расширенной версии. Так, в комплексе средств AV нет средств для микропроцессора КР580ВМ80А (Intel 8080), но есть средства для микропроцессора КР1821ВМ85 (Intel 8085). Отладка программ для первого микропроцессора ведется в рамках комплекса для второго. Все рассматриваемые программы создавались для DOS, поэтому удобнее ими пользоваться, используя или командный режим DOS или различные оболочки именно этой операционной системы. 3.2.1. Составление исходной программыИсходная программа на ассемблере для ее отладки с помощью рассматриваемых кросс-средств может быть подготовлена с помощью любого текстового редактора, создающего тексты для DOS. Исходная для ассемблирования программа должна иметь расширение АSM т.е. иметь файловую спецификацию типа «ИМЯ. ASM». В начале каждой строки команды не менее шести пробелов должно быть отведено под поле меток. Если в строке команды используется метка, то эта метка должна располагаться с первой позиции строки. От команды ее отделяет двоеточие. В конце строки после каждой команды можно указывать комментарии, отделив их от команды точкой с запятой. Кроме команд микропроцессора программа может включать в себя инструкции для транслятора. Чаще всего используются следующие инструкции. ORG (Адрес) – данная инструкция определяет, что командам, расположенным ниже этой инструкции, будут присваиваться абсолютные адреса размещения в памяти, начиная с адреса, указанного в инструкции. (Имя) EQU (Значение) – инструкция Equivalence (эквивалентность) устанавливает соответствие между символьным именем, которым определен некоторый операнд, и его численным значением. Писать программы значительно проще, если для обозначения тех или иных переменных, адресов, констант использовать символьные переменные. После данной инструкции в ассемблерных командах можно указывать символьные имена операндов, которые при трансляции автоматически будут заменены на указанные численные значения. DB (Значение) – инструкция Data byte (байт данных) в текущем адресе программы размещает указанный байт данных. Инструкция используется для формирования в памяти таблиц и массивов данных. END – инструкция End (окончание), определяет, что ниже расположенная часть программы транслироваться не должна. В простейшем случае это обязательная последняя инструкция программы, подготовленной для трансляции. Примеры применения данных инструкций приведены ниже в листинге трансляции программ по лабораторным работам. Исходная программа не должна содержать ряд запрещенных символов. Например, символьным переменным нельзя присваивать общепринятые имена, используемые для обозначения различных узлов микропроцессора. 3.2.2. Программа ассемблирования AVMACПрограмма AVMAC является программой ассемблирования, то есть трансляции с языка ассемблера на машинный язык. Для осуществления ассемблирования необходимо в командной строке DOS набрать и выполнить следующую команду: >AVMAC.ЕХЕ ИМЯ.ASM Результатом ассемблирования являются три файла. Первый файл «ИМЯ.OBJ» является файлом, который содержит результаты трансляции, представленные в машинных кодах персонального компьютера. Второй файл «ИМЯ.МАР» - это текстовой файл, представляющий собой перечень меток, содержащихся в программе, с указанием адресов программы по которым эти метки оказались. Третий файл «ИМЯ.PRN» - это листинг трансляции. Он содержит по столбцам нумерацию строк программы, адрес первого байта команды, шестнадцатеричные коды всех байт команды, строку программы из метки, команды и комментариев. В результате ассемблирования находятся все формальные ошибки, присутствующие в программе. Перечень ошибок или сообщение об их отсутствии выводится на командную панель DOS. При наличии ошибок сообщения о них также помещаются в файл «ИМЯ.PRN», причем каждое сообщение об ошибке помещается строкой ниже той команды, где она была найдена. 3.2.3. Программа редактора связей AVLINKЧаще всего разработка большой по объему программы работы микропроцессорной системы ведется по пути предварительного создания отдельных программных модулей, подпрограмм и т.д. В конечном итоге все эти модули после их ассемблирования нужно слить воедино. Причем при создании отдельных модулей в каждом из них могут выполняться переходы к меткам, расположенным в других модулях, в одних модулях могут осуществляться вызовы подпрограмм, находящихся в других модулях. Таким образом, надо не просто слить отдельные программные модули, но и установить между ними взаимные связи, учитывающие физические адреса всех перекрестных ссылок после размещения модулей в определенном порядке друг за другом. Это и выполняет программа AVLINK, называемая редактором связей. Для выполнения действий программы необходимо в командной строке DOS набрать и выполнить следующую команду: >AVLINK.ЕХЕ ОБОБЩАЮЩЕЕ ИМЯ.НЕХ= ИМЯ1.OBJ, ИМЯ2.OBJ… где: ОБОБЩАЮЩЕЕ ИМЯ.НЕХ - создаваемый общий программный модуль, который должен состоять из прошедших ассемблирование модулей ИМЯ1.OBJ, ИМЯ2.OBJ… Так как итогом работы этой программы всегда является файл в шестнадцатеричных кодах, а исходными файлами должны являться ассемблированные файлы, то соответствующие расширения файлов в командной строке можно опускать: >AVLINK.ЕХЕ ОБОЩАЮЩЕЕ ИМЯ = ИМЯ1, ИМЯ2 … Если исходным являлся единственный программный модуль, то командная строка будет выглядеть еще проще: >AVLINK.ЕХЕ ИМЯ = ИМЯ 3.2.4. Программа отладчика-симулятора AVSIMПрограмма AVSIM является симулятором - программно-логической моделью микропроцессора. Она позволяет отлаживать программу в различных режимах. При этом на экране персонального компьютера отображается содержимое всех программно-доступных элементов микропроцессора. Программист в любой момент времени может изменить содержимое этих блоков, например, на значения, соответствующие заранее рассчитанному им контрольному примеру. Выполняя отдельные команды программы или их блоки, программист может проверять правильность выполняемых действий. Для запуска программы необходимо набрать и выполнить командную строку: >AVSIM.EXE –C1 Ключ –С1 определяет наличие цветовой разбивки различных функциональных полей симулятора. Прежде всего, программа просит определить тип модификации микропроцессора или выбрать одну из конфигураций его стандартного включения с некоторыми периферийными БИС. Делается это с помощью меню на экране. После этого на экране появляются функциональные поля отладчика. В целом они делят экран на четыре основные зоны (рис. 9): 1 – зона отображения отлаживаемой программы; 2 – зона, отражающая состав структурных элементов микропроцессора, и значения, записанные в эти элементы; 3 – командное меню отладчика; 4 – меню служебной информации об установках отладчика. Рис. 9. Зоны экрана симулятора Программист может совершать действия во 2-й и 3-й зонах. Перенос маркера (и действий) из зоны в зону осуществляется нажатием клавиши ESC. Так как состав внутренних структурных элементов различных микропроцессоров несколько отличается друг от друга, то вторая зона экрана для них тоже различна. Для микропроцессора 8085 (8080) в этой структурной зоне отображены следующие элементы (рис. 10): А – аккумулятор (в двоичной и в шестнадцатеричной форме); С – признак переноса; Z, P, S, AS – прочие признаки; РС – программный счетчик; справа от значения счетчика показаны в шестнадцатеричной форме 8 байт программы, начиная с адреса, находящегося в РС; SP – указатель стека; справа от значения стека показаны в шестнадцатеричной форме 8 байт содержимого стека; ВС, DE, HL – регистровые пары. Переведя маркер во вторую зону, можно, подводя его с помощью соответствующих клавиш под нужные элементы, менять их содержимое. Командное меню. Командное меню пользователя представляет собой размещенные в ряд команды отладчика. Нажимая клавиши <- и ->, можно выбрать нужную команду. Выполнение любого действия инициируется нажатием клавиши ENTER. Как правило, все команды имеют подкоманды. Над командной строкой всегда выводится подсказка о выбранной команде или о выполненном действии. Если в процессе выполнения команды обнаружилось, что какие-то действия делались неправильно, прервать выполнение последовательности команд и вернуться в основное меню можно, нажав одновременно клавиши CTRL и C. Рис. 10. Вид экрана для симулятора АVSIM 8085 Ниже перечислены наиболее часто используемые команды и подкоманды меню. Порядок описания команд соответствует обычному порядку их применения при работе с отладчиком. SET – команда установки. Работу с отладчиком обязательно необходимо начинать с распределения адресного пространства микропроцессора (Memory-map) между ПЗУ (rеаd-only) и ОЗУ (random-access). SET – Memory-map – rеаd-only – low address (upper address) После данной последовательности команд в меню задается в шестнадцатеричной форме сначала младший, а затем старший адрес области ПЗУ. SET – Memory-map – random-access – low address (upper address) Задается в шестнадцатеричной форме сначала младший, а затем старший адрес области ОЗУ. VIEU – команда просмотра установок. Позволяет проверить значения всех установок, сделанных в процессе работы с отладчиком. VIEU – Memory-map Данная последовательность команд позволяет проверить правильность распределения адресного пространства между ОЗУ и ПЗУ. LOAD – команда загрузки. Служит для загрузки в симулятор отлаживаемой программы. LOAD – Program – Enter filename После выполнения этой последовательности команд необходимо набрать имя файла отлаживаемой программы. Программа должна иметь расширение НЕХ и располагаться в том же каталоге, что и программа-отладчик. Загружаемая программа отобразится в первой зоне экрана. Представлена она будет на языке ассемблера, слева от строк программы указываются адреса команд. DUMP – команда установки адресов зон просмотра памяти Во второй части экрана отладчика отображаются две зоны адресного пространства памяти по 32 байта (Dump area 1 и 2). По усмотрению программиста можно задавать различные начальные адреса этих зон и в процессе отладки программы наблюдать, как меняется информация в конкретных ячейках памяти. Делается это последовательно для каждой зоны в абсолютных адресах. DUMP – select Dump Area 1 (2) – absolute RESET – команда начальной установки. RESET – CPU Данная последовательность команд производит все установки, которые осуществляются при осуществлении аппаратного сброса микропроцессора (РС – устанавливается в ноль, запрещаются прерывания и т.д.). HELP – команда получения подсказок по работе отладчика. QUIT – команда окончания работы с отладчиком и выхода в DOS. Установка контрольных точек. Установка точек останова выполнения программы для контроля результатов работы производится с помощью следующих функциональных клавиш: F2 – перевод курсора установки точки останова на одну позицию по программе вверх; F4 – перевод курсора установки точки останова на одну позицию по программе вниз; F3 – установка точки останова на указанной позиции. Курсор установки точки останова перемещается с помощью указанных клавиш в поле 1 экрана отладчика, т.е. указывает непосредственно на конкретную команду программы. Управление выполнением отлаживаемой программы. Для управления выполнением программы служат следующие функциональные клавиши: F1 – запуск программы с адреса, установленного в программном счетчике (автоматический режим отладки); F10 – выполнение одной текущей команды программы с остановом (пошаговый режим отладки); F9 – возврат по программе назад на одну команду; F5 – изменение скорости выполнение программы в автоматическом режиме. |