• в режиме с активным положительным перепадом (In Edge Sensitive), независимо от полярности, используется вывод с наименьшим номером линии порта ввода/вывода общего назначения GPIO.
Примечание. Назначение нескольких выводов внешних прерываний EINTn в режиме с активным положительным перепадом не рекомендуется, так как может привести к ошибке.
На функциональной схеме обработки внешних прерываний (Рис. 4.3) показано, как формируется выходной сигнал EINTi.
Когда в множестве выводов внешних прерываний имеется более одного вывода EINTn и они логически объединены по схеме логического ИЛИ, то подпрограмма обработки прерывания может считывать состояния этих выводов как линий ввода/вывода GPIO с использованием регистров IO0PIN и IOIPIN, чтобы определить, сигнал на каком выводе(-ах) вызвал прерывание.
4.6. Управление памятью
Управление памятью заключается в переотображении области векторов прерываний таким образом, чтобы, с точки зрения пользователя, она всегда начиналась с адреса 0x00000000. Это позволяет управлять прерываниями с помощью программного кода, размещенного в различных областях памяти.
Регистр управления памятью (МЕММАР — OxE01FC040)
Описание регистра МЕММАР приведено в Табл. 4.9. Битовая структура регистра МЕММАР приведена в Табл. 4.10.
Таблица 4.9. Регистр МЕММАР
Адрес |
Название |
Описание |
Доступ |
0xE01FC040 |
МЕММАР |
Регистр управления памятью. Определяет, читаются ли вектора прерывания ARM из загрузочного блока во Flash-памяти, пользовательской Flash-памяти или оперативной памяти |
R/W |
Таблица 4.10. Биты регистра МЕММАР (МЕММАР - 0xE01FC040)
Номер бита |
Название бита |
Функция бита |
Значение после сброса4 |
1:0 |
МАР1:0 |
00: Режим загрузчика. Векторы прерывания переотображены в загрузочный блок. 01: Режим пользовательской Flash-памяти. Векторы прерывания не переотображены и постоянно находятся во Flash-памяти. 10: Режим пользовательской оперативной памяти. Векторы прерывания переотображены в статическую оперативную память SRAM. И: Режим пользовательской внешней памяти. Векторы прерывания переотображены во внешнюю память. Этот режим доступен только для устройств в 144-выводном корпусе, имеющих контроллер внешней памяти, и не должен задаваться, когда используются другие микроконтроллеры семейства LPC2000. Предупреждение. Некорректное задание значений этих битов может привести к неверному функционированию микроконтроллера |
0 |
7:2 |
Зарезервированы |
Пользовательское программное обеспечение не должно производить запись в зарезервированные биты. Чтение зарезервированного бита возвращает неопределенное значение |
NA |
'> Значение битов MAP после аппаратного сброса равно 00. Это значение дает возможность пользователю видеть результаты выполнения кода загрузчика, который всегда инициируется при сбросе. |
4.6.1. Рекомендации по использованию возможности управления памятью
Механизм управления памятью просто выбирает один из трех доступных источников данных (состоящих из 64 байтов каждый) необходимых для обработки исключительной ситуации ARM. Например, всякий раз, когда сгенерирован запрос программного прерывания, ядро ARM будет выбирать 32-битные данные, «расположенные» по адресу 0x00000008 (см. Табл. 2.1). Однако если биты МЕММАР[1:0] = 10 (режим пользовательской оперативной памяти), то чтение/выборка по адресу 0x00000008 возвратит данные, реально хранящиеся по адресу 0x40000008. Если биты МЕММАР[1:0] = 01 (режим пользовательской Flash-памяти), то чтение/выборка по адресу 0x00000008 возвратит данные, реально хранящиеся во встроенной Flash-памяти по адресу 0x00000008. В случае, когда биты МЕММАР[1:0] = 00 (режим загрузчика), то чтение/выборка по адресу 0x00000008 возвратит данные, хранящиеся по адресу 0x7FFFE008 (загрузочный блок, переотображенный во встроенную Flash-память).
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |