Предыдущая Следующая

Адрес

Исключительная ситуаши

0x0000 0000

Reset

Сброс (запуск)

0x0000 0004

Undefined instruction

Неопределенная (неправильная) команда

0x0000 0008

SWI

Программное прерывание

0x0000 ОООС

Prefetch Abort

Аварийное прекращение работы выбора с упреждением (ошибка выборки команды из памяти)

0x0000 0010

Data Abort

Аварийное прекращение выборки данных (ошибка доступа к данным в памяти)

0x0000 0014

 

Зарезервировано1'

0x0000 0018

 

IRQ

0x0000 001С

 

FIQ

'* В документации ARM этот адрес идентифицируется как зарезервированный. В микроконтроллерах семейства LPC2000 этот адрес используется встроенным зпрузчиком как ключ (сигнатура) «правильной» пользовательской программы. Более подробно гго описано в главе 20 «Организация и программирование Flash-памяти».

2.3. Переотображение памяти

Как упоминалось выше, весь загрузочный блок может быть «переотображен» (скопирован) в область старших адресов встроенной памяти. Это предусмотрено для того, чтобы обеспечить возможность совместимости с новыми версиями микроконтроллеров. Таким образом, при использовании встроенных и внешних модулей памяти различного размера, разработчику никогда не потребуется изменять местоположение загрузочного блока (что потребовало бы изменения непосредственно кода загрузчика) или способ отображения векторов прерываний загрузочного блока. Области памяти, не относящиеся к размещению векторов прерываний, остаются на прежних местах. На Рис. 2.11, Рис. 2.12 приведены схемы распределения адресного пространства встроенной памяти в вышеперечисленных режимах. Микроконтроллеры LPC213x, LPC214x имеют загрузочный блок размером 12 Кбайт (Рис. 2.12), остальные микроконтроллеры LPC2000 имеют загрузочный блок размером 8 Кбайт (Рис. 2.11). Часть памяти, которая может переотображаться, чтобы обеспечить обработку прерываний в различных режимах, включает в себя область векторов прерываний (32 байта) и дополнительные 32 байта, т. е. имеет размер 64 байта. Переотображение позволяет обращаться к физическим адресам с 0x0000 0000 по 0x0000 003F путем программного доступа к другим (переотображенным) адресам. Таким образом, типовая пользовательская программа во Flash-памяти может разместить полный обработчик FIQ по адресу 0x0000 001С, при этом не нужно учитывать границы области памяти. Вектор, размещенный в загрузочном блоке внешней памяти или в SRAM, должен содержать команды передачи управления фактическим программам обработки прерывания или другим командам, которые обеспечивают переход к программам обработки прерываний.

Вышеописанная структура управления памятью выбрана производителем (фирмой NXP) по следующим причинам:

1. Использование переотображения памяти позволяет обработчику FIQ во Flash-памяти «не обращать внимания» на границы областей памяти.

2. В памяти резервируется пространство для хранения 32-битных констант адресов, что позволяет производить так называемые переходы со смещением, т. е. в теле команды перехода указывается величина смещения (адрес в некоторой специально выделенной области памяти), а в соответствующей ему ячейке памяти находится 32-битная константа — адрес перехода.


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz