Разряд |
Исходное состояние |
Назначение |
Регистр управления программируемыми флагами PFTYPE, адрес памяти данных=0x3FE6 |
15 |
0 |
Не используется |
14…12 |
1 |
Циклы ожидания байтовой памяти данных BDMA от 0 до 7 |
11 |
1 |
Разрешение выборки портов ввода-вывода сигналом -CMS: 0 — запрещено, 1 — разрешено |
10 |
0 |
Разрешение выборки байтовой памяти данных BDMA сигналом -CMS: 0 — запрещено, 1 — разрешено |
9 |
1 |
Разрешение выборки памяти данных сигналом -CMS: 0 — запрещено, 1 — разрешено |
8 |
1 |
Разрешение выборки памяти программ сигналом -CMS: 0 — запрещено, 1 — разрешено |
7…0 |
0 |
Режим работы программируемых выводов флагов PF7…PF0: 0 — выход, 1 — вход |
Регистр управления программируемыми флагами PFDATA, адрес памяти данных=0x3FE5 |
15…8 |
X |
Не используются |
7…0 |
X |
Данные программируемых выводов флагов PF7…PF0 (чтение/запись) |
Таблица 4.2ж Регистры управления портом байтовой памяти BDMA
Разряд |
Исходное состояние |
Назначение |
Регистр-счетчик слов BWCOUNT, адрес памяти данных=0x3FE4 |
15, 14 |
0 |
Не используются |
14…0 |
0x20/0 |
Значение счетчика (когда MMAP=0 и BMODE=0 значение счетчика = 0x20, когда MMAP=1 или BMODE=1 значение счетчика = 0) |
Регистр управления BDMACR, адрес памяти данных = 0x3FE3 |
15…8 |
0 |
Номер страницы BDMA от 0 до 0xFFFF |
7…4 |
0 |
Не используются |
3 |
1 |
Режим работы процессора при выполнении циклов BDMA: 0 — работа, 1 — останов |
2 |
0 |
Направление передачи данных: 0 — чтение из BDMA, 1 — запись в BDMA |
1, 0 |
0 |
Тип данных: 00 — память программ 24 разрядов, 01 — память данных 16 разрядов, 10 — память данных 8 старших разрядов, 11 — память данных 8 младших разрядов |
Регистр внешнего адреса BEAD, адрес памяти данных = 0x3FE2 |
15, 14 |
0 |
Не используются |
13…0 |
0 |
Значение внешнего адреса на шине процессора, при обмене через BDMA (от 0 до 0x3FFF) |
Регистр внутреннего адреса BIAD, адрес памяти данных = 0x3FE1 |
15, 14 |
0 |
Не используются |
13…0 |
0 |
Значение внутреннего адреса памяти процессора при обмене через BDMA (от 0 до 0x3FFF) |
Таблица 4.2з Регистр управления IDMACR
Разряд |
Исходное состояние |
Назначение |
15 |
0 |
Не используется |
14 |
0 |
Указатель типа памяти: 0 = память программ РМ, 1 = память данных DM |
13...0 |
0 |
Значение начального адреса памяти процессора при обмене через IDMA (от 0 до 0x3FFF) |
X — произвольное состояние после сброса.
Условные обозначения регистров в таблицах соответствуют их названиям на программно-логической модели, изображенной на рис. 4.1.
Все перечисленные выше регистры позволяют осуществлять полный контроль и управление над процессором со стороны программы.
Глава 5. Система прерываний
В этой главе описывается система прерываний процессора, позволяющая процессору оперативно реагировать на различные события.
Диспетчер прерываний позволяет процессору реагировать на одиннадцать возможных прерываний и сброс. Все векторы прерываний процессора ADSP-2181 представлены в табл. 5.1.
Таблица 5.1 Векторы прерываний сигнального процессора ADSP-2181
Приоритет |
Источник прерывания |
Адрес (HEX) |
Высший приоритет 0 |
Сброс (или выход из режима пониженной мощности при установке 12-го разряда регистра S1ABUF=1) |
0000 |
1 |
Снижение потребляемой мощности (немаскируемое прерывание) |
002C |
2 |
IRQ2 |
0004 |
3 |
IRQL1 |
0008 |
4 |
IRQL0 |
000C |
5 |
SPORT0 Передатчик |
0010 |
6 |
SPORT0 Приемник |
0014 |
7 |
IRQE |
0018 |
8 |
BDMA прерывание |
001C |
9 |
SPORT1 Передатчик или IRQ1 |
0020 |
10 |
SPORT1 Приемник или IRQ0 |
0024 |
11 Низший приоритет |
Таймер |
0028 |
Прерывания в процессоре имеют различную приоритетность, от 0 до 11. При возникновении любого из прерываний, процессор выполняет переход на подпрограмму обработки соответствующего прерывания, адрес которой заложен в векторе данного прерывания. Адреса векторов прерываний расположены в самом начале программной памяти процессора через четыре 24-разрядных слова команды, что позволяет производить простую обработку или выход из прерывания на месте, без перехода на подпрограмму обработчика прерывания. В противном случае может быть выполнен безусловный переход на подпрограмму обработчика прерывания командой jump.
Читать дальше