Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

BADRAM - Идентификация нереализованного ОЗУ




5.4.1 Синтаксис

_ _badram <expr>[-<expr>][, <ехрг>[-<ехрг>]]

5.4.2 Описание

Директивы _ _MAXRAM и _ _BADRAM определяют адреса нереализованных регистров ОЗУ. _ _BADRAM определяет индивидуальный адрес нереализованного регистра. Данная директива предназначена для использования совместно с директивой _ _MAXRAM. Каждое значение <ехрг>, директивы _ J3ADRAM, должно быть меньше указанного в _ _MAXRAM. После директивы _ _MAXRAM, в тексте программы, точная карта нереализованного ОЗУ создается директивами _ J3ADRAM.

Для указания диапазона адресов нереализованного ОЗУ используйте синтаксис <minloc> - <maxloc>.

5.4.3 Пример

См. пример для _ _MAXRAM

5.4.4 См. также __MAXRAM

5.5 BANKISEL - Выбор банка для косвенной адресации

5.5.1 Синтаксис

bankieel <label>

5.5.2 Описание

Используется при генерации объектного файла. Директива дает команду компилятору сгенерировать код настройки банка памяти данных для косвенного обращения к регистру <label>. Только одна метка может быть указана в директиве. Предварительно метка <label> должна быть объявлена, и соответствовать назначению директивы.

Линкер генерирует соответствующий код для выбора банка памяти. Для 14 - разрядных микроконтроллеров выполняется воздействие на бит IRP в регистре STATUS в соответствии с банком размещения регистра. Для 16-разрядных микроконтроллеров генерируются команда MOVLB или MOVLR. Если пользователь сам выбирает рабочий банк памяти, то никаких дополнительных инструкций в код программы добавлено не будет.

Дополнительную информацию смотрите в главе 6.

5.5.3 Пример

movlw Varl movwf FSR bankisel Varl

movwf INDF

5.5.4 См. также BANKSEL, PAGESEL

5.6 BANKSEL - Выбор банка для прямой адресации

5.6.1 Синтаксис

banksel <label>

5.6.2 Описание

Используется при генерации объектного файла. Директива дает команду компилятору сгенерировать код настройки банка памяти данных для прямого обращения к регистру <label>. Только одна метка может быть указана в директиве. Предварительно метка <label> должна быть объявлена, и соответствовать назначению директивы.

Линкер генерирует соответствующий код для выбора банка памяти. Для 12-разрядных микроконтроллеров устанавливает/сбрасывает бит в регистре FSR. Для 14-разрядных микроконтроллеров - изменяются биты в регистре STATUS. Для 16-разрядных микроконтроллеров генерируются команда MOVLB или MOVLR. Для усовершенствованных 16-разрядных микроконтроллеров будет сгенерированна команда MOVLB. Если в микроконтроллере только один банк памяти никакой дополнительный код генерироваться не будет.

Дополнительную информацию смотрите в главе 6.

5.6.3 Пример

banksel Varl movwf Varl

5.6.4 См. также BANKISEL, PAGESEL


5.7 CBLOCK - Определение блока констант

5.7.1 Синтаксис

cblock [<expr>]

<label>[:<increment>] [,<label> [:<increment>] ] endc

5.7.2 Описание

Определить список именованных констант. Каждая именованная константа <label> имеет некоторое значение, описанное выше по тексту программы. Цель данной директивы состоит в том, чтобы указать адреса размещения нескольких констант. Список именованных констант заканчивается директивой ENDC.

<expr> - указывает стартовый адрес для первой константы. Если адрес не указан, то используется заключительное значение предыдущего CBLOCK. Если первый CBLOCK не имеет никакого значения <ехрг>, то размещение начинается с нулевого адреса.

<increment> - указывает приращения адреса для текущей именованной константы.

Именованные константы в одной строке разделяются запятыми.

Директива CBLOCK используется для размещения констант в памяти программ и памяти данных.

5.7.3 Пример

cblock 0х20; name_1 будет иметь; адрес 20

name_l, name_2; name_2, 21

name_3, name_4; name_4 адрес 23. endc cblock 0х30

TwoByteVar: 0, TwoByteHigh, TwoByteLow

Queue: QUEUE_SIZE

QueueHead, QueueTail

Doublel:2, Double2:2 endc

5.7.4 См. также ENDC

5.8 CODE - Начало кода объектного файла в памяти программ

5.8.1 Синтаксис

[<label>] code [<ROM address>]

5.8.2 Описание

Используется при генерации объектного файла. Объявляет начало секции кода программы. Если <label> не указана, секции присваивается имя.code. Если не указан адрес секции, то ей будет присвоено текущее значение адреса в памяти программ.

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

Дополнительную информацию смотрите в главе 6.

5.8.3 Пример

RESET code H'OIFF' goto START

5.8.4 См. также

EXTERN, GLOBAL, IDATA, UDATA, UDATA ACS, UDATA OVR, UDATA SHR


5.9 _ _CONFIG - Установка битов конфигурации микроконтроллера

5.9.1 Синтаксис

_ _config <expr> OR _ _config <addr>, <expr>

5.9.2 Описание

Устанавливает биты конфигурации микроконтроллера в соответствии со значением <ехрг>. Для микроконтроллеров семейства Р1С18СХХХ дополнительно указывается адрес <addr> размещения конфигурационных битов. Подробное описание конфигурационных битов смотрите в технической документации на соответствующий микроконтроллер.

Предварительно, перед директивой _ _CONFIG, надо указать тип микроконтроллера с помощью директивы LIST или PROCESSOR. Для микроконтроллеров семейства Р1С17СХХХ в директиве LIST необходимо указать выходной формат HEX файла INHX32.

5.9.3 Пример

list p=17c42,f=INHX32 _ _config h'ffff'; Конфигурация по умолчанию

5.9.4 См. также

__IDLOCS, LIST, PROCESSOR




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 749; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.