Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Руководство пользователя по сигнальным процессорам Sharc

.pdf
Скачиваний:
143
Добавлен:
01.05.2014
Размер:
9.49 Mб
Скачать

Регистры Е управления/состояния

20FLG1 Значение FLAG1

21FLG2 Значение FLAG2

22FLG3 Значение FLAG3

23Зарезервирован

24 31 CACC Биты накопления сравнений

E.7. Регистр «залипшего» состояния (STKY)

Бит

Имя

Определение

0

AUS

Потеря значащих разрядов в операции с плавающей точкой

1

AVS

Переполнение результата ALU в операции с плавающей точкой

2

AOS

Переполнение результата ALU в операции с фиксированной точкой

3 4

 

Зарезервированы

5

AIS

Неправильная операция ALU с плавающей точкой

6

MOS

Переполнение результата умножителя с фиксированной точкой

7

MVS

Переполнение результата умножителя с плавающей точкой

8

MUS

Потеря значащих разрядов в операции с плавающей точкой

9

MIS

Неправильная операция умножителя с плавающей точкой

10 16

 

Зарезервированы

17

CB7S

Переполнение циклического буфера 7 DAG1

18

CB15S

Переполнение циклического буфера 15 DAG2

19 20

 

Зарезервированы

21

PCFL

Стек счетчика команд полный (не «залипший»)

22

PCEM

Стек счетчика команд пустой (не «залипший»)

23

SSOV

Стек состояния переполнен (MODE1 в ASTAT)

24

SSEM

Стек состояния пустой (не «залипший»)

25

LSOV

Стек цикла переполнен (адрес цикла и счетчик цикла)

26

LSEM

Стек цикла пустой (не «залипший»)

27 31

 

Зарезервированы

Биты 21 26 только для чтения. Запись в регистр STKY не влияет на эти биты.

Все биты, кроме 21, 22, 24, 26, «залипшие» (смотри раздел «Флаги стека» в главе Управление программой). После установки «залипшего» бита, он остается в этом состоянии, пока не будет явно сброшен.

Е.8. Регистры фиксирования и маскирования прерываний (IRPTL и IMASK)

Положения битов в регистрах IRPTL и IMASK соответствуют прерываниям ADSP 2106x и расположены в порядке приоритета.

621

622

управления/состояния

Регистры E

Все биты управления и состояния считаются активными, если равны 1 (если другой вариант не оговаривается специально). Указаны значения битов по умолчанию после сброса; если значение не указано, то состояние бита после сброса не определено или зависит от сигналов на процессорных входах. Зарезервированные биты показаны серым цветом. В них всегда должны записываться нули.

Регистры Е управления/состояния

623

E Регистры управления/состояния

Бит Адрес

Имя

 

 

 

 

 

вектора*прерывания Функция

 

0

 

0x00

 

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

 

1

 

0x04

RSTI

Сброс (только для чтения)**

ВЫСШИЙ ПРИОРИТЕТ

2

 

0x08

 

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

 

3

 

0x0C

SOVFI

Переполнение стека состояния или стеков цикла, или полный

 

 

 

 

стек счетчика команд

 

4

 

0x10

TMZHI

Таймер=0 (высокий приоритет)

 

5

 

0x14

VIRPTI

Векторное прерывание

 

6

 

0x18

IRQ2I

 

выставлен

 

7

 

0x1C

IRQ1I

 

выставлен

 

8

 

0x20

IRQ0I

 

выставлен

 

9

 

0x24

 

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

 

10

 

0x28

SPR0I

0

канал DMA – прием через SPORT0

11

 

0x2C

SPR1I

1

канал DMA – прием через SPORT1 (или буфер 0 линк

 

 

 

 

портов)

 

12

 

0x30

SPT0I

2

канал DMA – передача через SPORT0

13

 

0x34

SPT1I

3

канал DMA – передача через SPORT1 (или буфер 1 линк

 

 

 

 

портов)

 

14

0x38

LP2I

4

канал DMA – буфер 2 линк портов

15

0x3C

LP3I

5

канал DMA – буфер 3 линк портов

16

 

0x40

EP0I

6

канал DMA – буфер 0 внешнего порта (или буфер 4 линк

 

 

 

 

портов)

 

17

 

0x44

EP1I

7

канал DMA – буфер 1 внешнего порта (или буфер 5 линк

 

 

 

 

портов)

 

18

0x48

EP2I

8

канал DMA – буфер 2 внешнего порта

19

0x4C

EP3I

9

канал DMA – буфер 3 внешнего порта

20

0x50

LSRQ

Запрос обслуживания линк порта

 

21

0x54

CB7I

Переполнение циклического буфера 7

22

0x58

CB15I

Переполнение циклического буфера 15

23

0x5C

TMZLI

Таймер=0 (низкий приоритет)

 

24

0x60

FIXI

Переполнение при операции с фиксированной точкой

25

0x64

FLTOI

Исключение при переполнении результата с плавающей точкой

26

0x68

FLTUI

Исключение потери значащих разрядов результата с

 

 

 

 

плавающей точкой

 

27

0x6C

FLTII

Исключение ошибки при операции с плавающей точкой

28

0x70

SFT0I

0

прерывание программы пользователя

29

0x74

SFT1I

1

прерывание программы пользователя

30

0x78

SFT2I

2

прерывание программы пользователя

31

0x7C

SFT3I

3

прерывание программы пользователя

 

 

 

 

 

 

НИЗШИЙ ПРИОРИТЕТ

* Смещение относительно базового адреса: 0x0002 0000 для таблицы векторов прерываний во внутренней памяти, 0x0040 0000 для таблицы векторов прерываний во внешней памяти.

**Не маскируется.

624

Регистры Е управления/состояния

Е.9. Регистр конфигурации системы (SYSCON)

Регистр SYSCON используется для настройки конфигурации системы. SYSCON отображается во внутренней памяти по адресу 0х0000. После сброса SYSCON инициализируется значением 0х0000 0010, что определяет настройки следующим образом: ADSP 2106x взаимодействует с любым хост процессором по 16 разрядной шине. Для изменения настройки режима упаковки при передаче хост процессора (НРМ), в SYSCON должны записываться два 16 разрядных слова, даже если шина хост процессора 32 разрядная.

Бит

Имя

Определение

0

SRST

Программный сброс

1

BSO

Отмена выбора начальной загрузки

2

IIVT

Внутреннее расположение таблицы векторов прерываний (только для

 

 

режима «нет начальной загрузки»)

3

IWT

Передача командного слова (1=48 разрядная команда, 0=32 разрядные

 

 

данные)

4 5

HPM

Режим упаковки при передаче хост процессора (00=нет упаковки,

 

 

01=16®32, 10=16®48, 11=32®48)

6

HMSWF Порядок упаковки хост процессора (1=MSW первое, 0=LSW первое)

7HPFLSH Очистка состояния упаковки хост процессора

8IMDW0 Разрядность данных Блока 0 внутренней памяти (0=32 разрядные

данные, 1=40 разрядные данные)

9IMDW1 Разрядность данных Блока 1 внутренней памяти (0=32 разрядные

 

 

данные, 1=40 разрядные данные)

10

ADREDYКонфигурация сигнала REDY (1=активный управляющий, 0=с открытым

 

 

стоком)

11

BHD

Запрет зависания буфера (1=запрещено зависание, 0=разрешено

 

 

зависание)

12 15 MSIZE

Размер банка внешней памяти (MSIZE=log2(размер банка) 13)

16 17 EBPR

Приоритет обращения по внешней шине (01=ядро процессора, 10=IOP,

 

 

00=одинаковый)

18

DCPR

Приоритет 6 9 каналов DMA (1=вращающиеся приоритеты,

 

 

0=фиксированные приоритеты)

19 27

 

Зарезервированы

28

IMGR

Группировка внешней памяти (для многопроцессорной сети)

29 31

 

Зарезервированы

SRST Программный сброс (Software Reset). Вызывает программный сброс, имеет тот же эффект, что и сигнал на выводе.

BSO

Отмена выбора начальной загрузки (Boot Select Override). Блокирует

 

линии выбора памяти

и активирует сигнал

(выбор

памяти для начальной загрузки) как выходной. Это позволяет ADSP 2106x считывать данные из использовавшейся для начальной загрузки

625

626

управления/состояния

Регистры E

Все биты управления и состояния считаются активными, если равны 1 (если другой вариант не оговаривается специально). Указаны значения битов по умолчанию после сброса; если значение не указано, то состояние бита после сброса не определено или зависит от сигналов на процессорных входах. Зарезервированные биты показаны серым цветом. В них всегда должны записываться нули.

Регистры Е управления/состояния

EPROM, когда процессор больше не находится в режиме начальной загрузки. Так как в течение начальной загрузки из EPROM можно загрузить только 256 команд, то установка бита BSO позволяет ADSP 2106x считывать дополнительный код или данные из загружающей EPROM после завершения начальной загрузки. (См. раздел «Начальная загрузка» в главе Проектирование системы.)

 

1=активирует

для считывания из EPROM

IIVT

Внутреннее расположение таблицы векторов прерываний (режим нет

 

загрузки) (Internal Interrupt Vector Table). Таблица векторов

 

прерываний размещается по адресу 0х0002 0000 во внутренней памяти

 

для режима «нет начальной загрузки» (EBOOT=0, LBOOT=0,

 

(входной сигнал)=0). Когда IIVT=0 в режиме «нет начальной

 

загрузки», таблица векторов прерываний размещается по адресу 0х004х

 

0000 во внешней памяти. Заметим, что после сброса IIVT

 

инициализируется нулем, что определяет размещение таблицы

 

векторов прерываний во внешней памяти для режима «нет начальной

 

загрузки». (Когда ADSP 2106x настроен для начальной загрузки в

 

любом режиме (из EPROM, из хост процессора или через линк порт),

 

таблица векторов прерываний всегда размещается во внутренней

 

памяти, независимо от значения IIVT.)

 

1= таблица векторов прерываний размещается во внутренней памяти

 

для режима «нет начальной загрузки»

 

0= таблица векторов прерываний размещается во внешней памяти для

 

режима «нет начальной загрузки»

IWT

Передача командного слова (Instruction Word Transfer). Определяет

 

разрядность слова при прямых обращениях к внутренней памяти

ADSP 2106х (другими ADSP 2106х или хост процессором). IWT=1 отменяет действие битов IMDW (см. ниже) и принудительно задает 48 разрядную (в 3 столбца) передачу данных. При IWT=0 конфигурация слова данных определяется битами IMDW в регистре SYSCON. IWT должен устанавливаться всякий раз, когда ведущий ADSP 2106х или хост процессор читает или записывает команды из (этого) ADSP 2106х.

1 = 48 разрядные слова при прямом чтении/записи

0 = 32 разрядные слова при прямом чтении/записи

627

E Регистры управления/состояния

HPM (1:0) Режим упаковки при передачах хост&процессора (Host Packing Mode). Определяет разрядность внутреннего слова и внешней шины хост процессора для выполнения передач хост процессора во внутреннюю память ADSP 2106х или регистры IOP. Если хост процессор производит чтение или запись любого регистра IOP, кроме буферов FIFO внешнего порта (EPB0 EPB3) или буферов линк портов (LBUF0 LBUF5), разрядность слова всегда будет 32 бита независимо от того, какова разрядность шины хост процессора. Если хост процессор осуществляет чтение или запись буферов линк портов, разрядность слова определяется только HPM, а не битом LEXT в регистре LCTL.

00 = нет упаковки. Максимальная разрядность шины – 32 бита для асинхронных передач. Младшие 16 бит 48 разрядной шины данных будут записываться и считываться как нулевые, даже при чтении 48 разрядных слов. Для синхронных передач шина хост процессора должна быть 32 бита при передаче данных или 48 бит при передаче командных слов. (Примечание: для чтения и записи 48 разрядных слов из внутренней памяти следует установить в 1 бит IWT или бит IMDW для того блока памяти, к которому осуществляется обращение.)

по умолчанию после сброса:

01 = 16&разрядная шина хост&процессора, 32&разрядные слова.

Шина хост процессора будет 16 бит, любое обращение к памяти – как к 32 разрядному слову. (Замечание: Если происходит обращение к блоку внутренней памяти ADSP 2106х, для которого бит IMDW установлен в 1, будут читаться или записываться старшие 32 бита 48 разрядного слова.)

10 = 16&разрядная шина хост&процессора, 48&разрядные слова. Шина хост процессора будет 16 бит, любое обращение к памяти – как к 48 разрядному слову.

11 = 32&разрядная шина хост&процессора, 48&разрядные слова. Шина хост процессора будет 32 бита; любое обращение к памяти – как к 48 разрядному слову.

Для изменения режима упаковки при передачах хост процессора необходимо:

1.Записать в регистр SYSCON требуемое значение HPM.

2.Считать SYSCON, чтобы убедиться в завершении записи.

628

Регистры Е управления/состояния

3.Повторно записать данные в SYSCON (чтобы очистить чтение,

так как оно может происходить еще при прежнем режиме упаковки).

4.Подождать 4 цикла.

HMSWF

Порядок упаковки хост&процессора (Host Packing Order).

 

Определяет порядок упаковки слов, с которыми работает хост

 

процессор, для режимов упаковки 1632 и 1648. При упаковке

 

3248 HMSWF игнорируется. Если HMSWF=1, первым

 

упаковывается MSW (старшее 16 разрядное слово). Если

 

HMSWF=0, первым упаковывается LSW (младшее 16 разрядное

 

слово).

 

1 = первым упаковывается MSW

 

0 = первым упаковывается LSW

HPFLSH

Сброс состояния упаковки при передачах хост&процессора (Host

 

Packing Status Flush). Сбрасывает состояние упаковки при передачах

 

хост процессора. Пока происходит запись бита HPFLSH ядром

 

процессора ADSP 2106х, обращения хост процессора происходить не

 

должны. Существует время срабатывания два цикла, прежде чем

 

сброс даст эффект, после чего хост процессор может возобновить

 

нормальную работу. (Примечание: HPFLSH всегда читается как 0.)

 

1 = Сброс состояния упаковки хост процессора

IMDWx

Разрядность блоков данных внутренней памяти (Internal Memory

 

Block Data Width). Устанавливает разрядность слова данных для

 

каждого из блоков внутренней памяти. Для 32 разрядных слов

 

данных установите IMDWx в 0. Для 40 разрядных данных

 

(пересылаемых внутри 48 разрядного слова) установите IMDWx в 1.

 

IMDW0 (бит 8 в SYSCON) задает разрядность слова данных для

 

Блока 0 памяти, IMDW1 (бит 9) для Блока 1. (Примечание: 48

 

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

 

установки бита IMDW. Более полно этот вопрос рассматривается в

 

разделе «Конфигурирование памяти для 32 х или 40 разрядных

 

данных» главы Память данного руководства.)

 

0 = 32 разрядные данные

 

1 = 40 разрядные данные

BHD

Запрет зависания буфера (Buffer Hang Disable). Запрещает

 

состояние зависания, которое происходит, когда ядро процессора

 

ADSP 2106x пытается считать из пустого (или записать в полный)

629

E Регистры управления/состояния

буфера SPORT (TX/RX), буфера линк портов (LBUFx) или буфера внешнего порта (ЕРВх). Состояние зависания возникает также в случае, когда внешнее устройство (другой ADSP 2106x или хост процессор) пытается считать из пустого буфера или записать в полный буфер.

После сброса BHD=0, т. е. зависание буфера разрешено. Это нормальный режим работы для буферов. Установка BHD=1 для запрета зависания буфера полезна для отладки.

Замечание: состояние полный или пустой для конкретного буфера может определяться путем считывания соответствующего регистра состояния/управления: DMACx для буфера внешнего порта, LCOM для линк порта, SRCTLx/STCTLx для буферов SPORT.

1=запрещено зависание 0=разрешено зависание

ADREDY Конфигурация сигнала REDY

(1=активный управляющий (active drive), 0=с открытым стоком (open drain))

MSIZE(3:0) Размер банка внешней памяти (External Memory Bank Size). Задает размер банков внешней памяти (размер каждого банка памяти одинаковый). Величина MSIZE вычисляется по следующей формуле:

MSIZE=log2(размер банка) 13

(Более подробно см. раздел «Банки внешней памяти» в главе

Память.)

EPBR(1:0) Приоритет обращения по внешней шине (External Bus Priority). Определяет приоритет в использовании внешней шины (DATA47 0, ADDR31 0) при возникновении конфликта между ядром процессора ADSP 2106x и устройством ввода вывода. Этот тип конфликта происходит, когда ядро процессора пытается произвести внешнее чтение или запись во время выполнения передачи по DMA, которая управляется независимо устройством ввода вывода). 00=одинаковый приоритет – оба обращения чередуются друг с другом 01=приоритет имеет ядро процессора

10=приоритет имеет устройство ввода вывода (для передач по DMA)

630