Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Конфигурирование целевой системы




 

Конфигурирование целевой системы производится в пункте Project – Options for Target.Окно настроек может быть также вызвано контекстно по щелчку правой кнопки мыши в окне WorkSpace – Files.Данное окно состоит из нескольких закладок, настройки которых необходимы для выполнения лабораторных работ.

В закладке Deviceможно изменить тип микроконтроллера.

В закладке Targetнужно задать частоту тактового генератора контроллера и модель памяти, используемую по умолчанию. Остальные настройки определяют нестандартные параметры контроллера.

В закладке Outputнеобходимо задать тип образа исполняемого модуля (галочка в окошке Create HEX File), имя которого можно изменить.

В закладке Debugнужно определить тип отладчика исполняемого модуля. при отладке на инструментальной ЭВМ задайте Use Simulator.

Остальные параметры используются по умолчанию.

 

Создание файла исходного текста

Для создания файла исходного текста выберите пункт меню mVision File – Newили щелкните мышью по соответствующей иконке основного меню. В ответ откроется окно редактора текстов. Имя редактируемого файла по умолчанию Text1, расширение будет определено при сохранении файла. Пока файл не сохранен со стандартным расширением (.c, .h, .A51), он не является файлом исходного текста, и возможности редактора исходных текстов на языке CилиАссемблеране подключены. После сохранения файла с расширением .c, .h или .A51файл редактируется как файл исходного текста. При этом текст анализируется редактором, и цветом выделяются синтаксические компоненты программы.

Подсветка синтаксиса производится для следующих элементов программы:

- ключевые слова;

- текстовые константы;

- числа различных систем исчисления;

- комментарии;

- и др.

цветовую палитру подсветки для различных режимов редактора можно настроить в пункте меню Edit – Configyration…

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

 

Компиляция проекта

Для компиляции проекта выберете пункт меню Project – Build Targetили нажмите клавишу F7.Убедитесь в отсутствии ошибок по сообщению в окне вывода.

 

Отладка программы

Отладка программы в среде mVision возможна в двух режимах:

- отладка в режиме симулятора;

- отладка на целевой системе.

Режим выбирается в пунктеProject – Options for TargetDebug. В лабораторной работе используется режим симулятора- Use Simulator.Чтобы начать отладку после успешной компиляции, выберите пункт меню Debug – Start/Stop Debug Session. При переходе в режим отладки в пункте меню Viewактивируйте окна, необходимые для контроля правильности выполнения программы. При отладке в пошаговом режиме шаг программы выполняется при нажатии клавиши F10.

Активируйте окно Дизассемблера в пункте View – Disassembly Window. для наблюдения за мнемокодом выполняемой команды в окне регистров отображается содержимое основных регистров контроллера. Время выполнения программы вычисляется в зависимости от частоты тактового генератора и выводится в окне регистров в переменной sec.Длительность выполнения программы в машинных циклах отображается в переменной states.

Формат файла листинга

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

Заголовок страницы

Каждая страница листинга начинается с заголовка, содержащего имя программы, имя проекта, число и время трансляции и номер страницы, например:

 

A51 MACRO ASSEMBLER LAB1               05/05/2008 20:59:18 PAGE     1

 

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

 

MACRO ASSEMBLER A51 V8.00b

OBJECT MODULE PLACED IN lab1.OBJ

ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE lab1.a51 SET(SMALL) DEBUG EP

 

Исходный текст с кодами команд

Исходный текст выводится в листинге в четыре столбца. Столбец LOC содержит адрес ПЗУ, по которому размещается код команды. Для директивы Ассемблера EQU в этом столбце выводится значение, присваиваемое соответствующему имени. В столбце OBJ выводятся коды команд. В столбце LINE указаны номера строк исходного текста. Далее в столбце SOURCE выводится исходный текст программы.

 

LOC OBJ LINE SOURCE

      1 ; Задание имен констант

0030  2    Addr equ 30H ; Начальный адрес ОЗУ

0010  3 Lng     equ 16 ; Количество данных

00BC     4 Const equ  0BCh ; Константа заполнения

      5    

      6    

0000 7830 7 mov R0,#Addr ;Загрузка адреса в регистр R0

0002 74BC 8 mov A,#Const ; Загрузка констанды в регистр

            ; - аккумулятор

0004 7A10 9 mov R2,#Lng ; Загрузка длины в регистр R2

0006 10 loop:   ; Метка начала цикла

0006 F6 11 mov @R0,A ; Запись аккумулятора в ОЗУ по

                ; адресу регистра R0

0007 08 12 inc R0 ; Увеличение адреса на единицу

0008 DAFC 13 djnz R2,loop ; Уменьшить счетчик на 1,

; сравнить с нулем и перейти в начало цикла, если не нуль

 

Исключить исходный текст из листинга можно директивой $NOLIST.

 

Таблица символических имен

Таблица символических имен содержит информацию о типе, значении и других атрибутах определенных в программе имен:

 

N A M E        TYPE     VALUE ATTRIBUTES

ADDR           N NUMB 0030H A  

CONST          N NUMB 00BCH A  

LNG            N NUMB 0010H A  

LOOP           C ADDR 0006H A 

Отменить генерирование таблицы имен можно директивой $NOSYMBOLS.

 

Тип имени определяется следующими буквами:

B - символ ссылается на память типа BIT.

C - символ ссылается на память типа CODE.

D - символ ссылается на память типа DATA.

I - символ ссылается на память типа IDATA.

N - символ – имя числа.

X - символ ссылается на память типа XDATA.

Дополнительно тип имени определяется словами:

ADDR - символ типа адрес.

NUMB - символ типа число.

SEG - символ – имя сегмента.

Число, следующее после определения типа, - это адрес имени в памяти (для адресов) или размер (для сегментов). Следующий после адреса символ A означает, что адрес абсолютный и неперемещаемый. Символ R – признак перемещаемого адреса.

 

Перекрестные ссылки

Директива $XREF включает информацию о перекрестных ссылках в таблицу символов:

 

XREF SYMBOL TABLE LISTING

---- ------ ----- -------

NAME     TYPE    VALUE ATTRIBUTES / REFERENCES

ADDR . . . . N NUMB 0030H A       3# 8

CONST. . . . .N NUMB 00BCH A       5# 9

LNG. . . . . .N NUMB 0010H   A       4# 10

LOOP . . . . .C ADDR 0006H A            11# 14

В столбце REFERENCES выводится список строк, в которых содержатся ссылки на соответствующие имена. Номера с символом '#’ - строки, в которых имена определяются.

 

Банки регистров

В этой строке перечисляются банки регистров, используемые программой. По умолчанию указывается только нулевой банк регистров. Используемые банки регистров определяются директивой $REGISTERBANK.Эта информация используется компоновщиком при подключении библиотечных объектных модулей:

 

REGISTER BANK(S) USED: 0 1

 

Предупреждения и ошибки

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

 

ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 477.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...