Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_otmp / Keil_51_v750a_OK_work / gs51_ch5_rus.doc
Скачиваний:
33
Добавлен:
14.04.2015
Размер:
477.18 Кб
Скачать

Краткое указание имени

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

  1. Имена регистров процессора: R0 – R15, RL0 – RH7, DPP0 – DPP3.

  1. Локальные переменные текущей функции в отлаживаемой программе. Текущая функция определяется по значению счетчика команд.

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

  1. Глобальные или общедоступные символы вашей отлаживаемой программы. Имена SFR регистров определяемых отладчиком µVision2 считаются также общедоступными символами, и среди них также проводится поиск имени.

  1. Символические имена созданные командой DEFINE отладчика µVision2. Эти символические имена используются для целей отладки и не являются частью вашей отлаживаемой программы.

  1. Системные переменные, которые позволяют отслеживать и изменять характеристики отладчика. Они не являются частью вашей отлаживаемой программы. Смотри параграф «Системные переменные» на странице 113 для получения более подробной информации.

  1. Символические имена, определяемые драйвером процессора (VTREG). Смотри параграф «Символические имена для встроенной периферии» на странице 114 для получения информации о виртуальных регистрах (VTREG).

ПРИМЕЧАНИЕ

Порядок поиска символических имен изменяется, если была создана пользовательская или сигнальная функция. В этом случае отладчик µVision2 сначала ищет в таблице имен, определенных в пользовательских или сигнальных функциях. Затем проводится поиск по вышеприведенному списку. Смотри главу 6 «Отладочные функции среды µVision2» на странице 131 для получения большей информации о пользовательских и сигнальных функциях.

Для литеральных символических имен, которые имеют в начале символ обратной одинарной кавычки (`), вышеприведенный порядок поиска изменяется следующим образом: вместо таблицы имен регистров процессора поиск производится в символических именах, определяемых драйвером процессора (VTREG).

Литеральные символические имена

Добавляя впереди знак обратной одинарной кавычки (`) вы получаете литеральное символическое имя. Литеральные имена должны использоваться для доступа к следующим элементам:

  • К переменным вашей программы или символам, которые совпадают с некоторым зарезервированным словом. Зарезервированными словами являются команды и опции отладчика µVision2, имена типов данных, имена регистров процессора и мнемоники ассемблера.

  • К символическим именам, определяемым драйвером процессора (VTREG), которые совпадают с именем переменной в программе.

Для литеральных имен µVision2 изменяет порядок поиска кратко указанных имен, как это было описано выше. Для литеральных имен в поиске используются символические имена, определяемые драйвером процессора (VTREG) вместо имен регистров процессора.

Примеры использования литеральных имен

Если вы в своей программе определите переменную с именем R5 и в отладчике попробуете сделать с ней какие-либо операции, то в действительности вы будете обращаться к регистру процессора R5. Для доступа же к переменной R5, вы должны использовать перед именем префикс ввиде одинарной обратной кавычки.

Доступ к регистру R5

Доступ к переменной R5

>R5 = 121

>`R5 = 212

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

Доступ к функции clock

Доступ к виртуальному регистру clock

>clock

0x00000DB2

>`clock

20000000

Номера строк

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

Номер строки

Соответствует программному адресу…

\LineNumber

… номера строки LineNumber в текущем модуле.

\ModuleName\LineNumber

… номера строки LineNumber в модуле ModuleName.

Пример

\measure\108

/* Строка 108 в модуле "MEASURE" */

\143

/* Строка 143 в текущем модуле */

Битовые адреса

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

выражение . позиция_бита

Примеры

ACC.2

/* Бит 2 регистра A */

0x20.5

/* Значение бита из битовой области 8051 */

Области памяти

Микроконтроллеры семейства 8051 имеют несколько различных областей памяти для переменных и кода программы. Эти области памяти могут явно указываться в виде префикса при записи выражений. Доступные префиксы представлены в следующей таблице.

Префикс

Область памяти

Описание

B:

BIT

Бит-адресуемая часть внутреннего ОЗУ.

C:

CODE

Память программы

Bx:

CODE BANK

Банк памяти программ; x указывает номер банка, например B1:

D:

DATA

Внутреннее прямо адресуемое ОЗУ.

I:

IDATA

Внутреннее косвенно адресуемое ОЗУ.

X:

XDATA

Внешнее ОЗУ.

ПРИМЕЧАНИЕ

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

Соседние файлы в папке Keil_51_v750a_OK_work