Регистры
состояния (ST0_55-ST3_55)
2-36
Эти
четыре 16 - разрядных регистра (смотрите
рисунок 2-16) содержат биты управления
и биты флагов. Биты управления влияют
на работу C55x
DSP,
а биты флагов отражают текущее состояние
DSP
или показывают результаты функционирования.
ST0_55, ST1_55 и ST3_55 каждый доступен по двум
адресам (смотрите секцию 2.2 и страницу
2-4). По одному адресу все биты TMS320C55x
доступны. По другому адресу (защищенному)
биты, представленные на следующем
рисунке, не могут быть модифицированы.
Защищенный адрес обеспечивает TMS320C54x
код, который был написан для доступа к
ST0, ST1 и PMST. Зарезервированные биты не
доступны для применения.
Замечание:
Всегда записывайте
1100b (Ch) в биты 11-8 ST3_55.2.10 Регистры состояния (st0_55-st3_55)
Регистры
состояния (ST0_55-ST3_55)
2-37
Регистры
ЦП
Рисунок
2-16. Регистры состояния
15
14
13
12
11
10
9
8-0
ST0_55
ACOV2
ACOV3
TC1
TC2
CARRY
ACOV0
ACOV1
DP
R/W
- 0
R/W
- 0
R/W
- 1
R/W
- 1
R/W
- 1
R/W
- 0
R/W
- 0
R/W
- 000000000
15
14
13
12
11
10
9
8
ST1_55
BRAF
CPL
XF
HM
INTM
M40
SATD
SXMD
R/W
- 0
R/W
- 0
R/W
- 1
R/W
- 0
R/W
- 1
R/W
- 0
R/W
- 0
R/W
- 1
7
6
5
4-0
C16
FRCT
C54CM
ASM
R/W
- 0
R/W
- 0
R/W
- 1
R/W
- 00000
15
14-13
12
11
10
9
8
ST2_55
ARMS
Зарезервировано
DBGM
EALLOW
RDM
Зарезер.
CDPLC
R/W
- 0
R/W
- 1
R/W
- 0
R/W
- 0
R/W
- 0
7
6
5
4
3
2
1
0
AR7LC
AR6LC
AR5LC
AR4LC
AR3LC
AR2LC
AR1LC
AR0LC
R/W
- 0
R/W
- 0
R/W
- 0
R/W
- 0
R/W
- 0
R/W
- 0
R/W
- 0
R/W
- 0
15
14
13
12
11-8
ST3_55
CAFRZ
CAEN
CACLR
HINT
Зарезервировано
(записывайте 1100b)
R/W
- 0
R/W
- 0
R/W
- 0
R/W
- 1
7
6
5
4-3
2
1
0
CBERR
MPNMC
SATA
Зарезервировано
CLKOFF
SMUL
SST
R/W
- 0
R/W
- pin
R/W
- 0
R/W
- 0
R/W
- 0
R/W
- 0
Условные
обозначения:
R/W
Доступ чтения и записи
-
X
X
– это значение после сброса DSP. Если X
= pin, X отражает уровень на выводе при
сбросе.
BIT
Если вы записываете
в защищенный адрес регистра состояния,
то запись в данный бит не имеет эффекта.
Биты всегда будут иметь значение 0 в
течение операций чтения.
Регистры
состояния (ST0_55-ST3_55)
2-38
Данная секция описывает
биты ST0_55 в алфавитном порядке.
2.10.1.1
Биты ACOV0, ACOV1, ACOV2 и
ACOV3 регистра ST0_55
Каждый из четырех
аккумуляторов имеет свой флаг переполнения
в ST0_55:
Бит
Имя
Описание
Доступность
Значение
сброса
9
ACOV1
Флаг
переполнения AC1
Чтение/запись
0
10
ACOV0
Флаг
переполнения AC0
Чтение/запись
0
14
ACOV3
Флаг
переполнения AC3
Чтение/запись
0
15
ACOV2
Флаг
переполнения AC2
Чтение/запись
0
Для каждого из флагов:
Детектирование
переполнения зависит от бита M40 в ST1_55:
M40
= 0: Переполнение обнаружено на позиции
31 бита.
M40
= 1: Переполнение обнаружено на позиции
39 бита.
Если необходима
совместимость с кодом TMS320C54x, убедитесь,
что M40 = 0.
ACOVx
устанавливается, когда переполнение
происходит в ACx, где x равно 0, 1, 2 или 3.
Как
только совершилось переполнение, ACOVx
остается установленным, пока не
произойдут следующие события:
Осуществление
сброса
ЦП
выполняет условный переход, запрос,
возврат или исполняет инструкцию,
которая тестирует состояние ACOVx.
ACOVx
полностью очищается инструкцией очистки
бита состояния. Например, можно очистить
ACOV1,
используя следующую инструкцию:
BCLR
ACOV1
(Для установки ACOV1
применяйте BSET ACOV1.)
2.10.1.2
Бит
CARRY в
ST0_55
Бит
Имя
Описание
Доступность
Значение
сброса
11
CARRY
Бит
переноса
Запись/чтение
1
Следующее является
основной информацией о бите переноса:
Детектирование
переноса/заема зависит от бита M40 в
ST1_55:
M40
= 0: Перенос/заем обнаружен на позиции
31 бита.
M40
= 1: Перенос/заем обнаружен на позиции
39 бита.
Если необходима
совместимость с кодом TMS320C54x, убедитесь,
что M40 = 0.2.10.1 Биты st0_55
Регистры
состояния (ST0_55-ST3_55)
2-39
Регистры
ЦП
Когда
произведено добавление в арифметическом
логическом устройстве блока D
(ALU
блока D),
если прибавление сгенерировало перенос,
то бит CARRY
устанавливается. Если перенос не
сгенерирован, то CARRY
очищается. Существует одно исключение
в данной ситуации: когда следующий
синтаксис используется (сдвигание Smem
на 16 бит), CARRY
устанавливается на перенос, но не
действует, если не сгенерирован перенос.
ADD Smem <<#16, [ACx,] ACy
При
осуществлении вычитания в ALU
блока D,
и, если вычитание сгенерировало заем,
то CARRY
очищается. Если заем не сгенерирован,
то CARRY
устанавливается. Существует одно
исключение: когда применяется следующий
синтаксис (сдвигание Smem
на 16 бит), CARRY
очищается для заема.
SUB Smem <<#16, [ACx,] ACy
CARRY
модифицируется через инструкции
логического сдвига.
По
вашему выбору CARRY
может модифицироваться как через
инструкции знакового сдвига, так и
через инструкции циклического сдвига.
Следующий
синтаксис инструкции модифицирует
CARRY
для отображения результатов вычислений,
когда регистр назначения является
аккумулятором:
MIN
[src,] dst
Минимум
сравнения
MAX
[src,] dst
Максимум
сравнения
ABS
[src,] dst
Абсолютное
значение
NEG
[src,] dst
Отрицание
Вы можете устанавливать и очищать
CARRY через следующие инструкции:
BCLR
CARRY
;
Очистка
CARRY
BSET
CARRY
;
Установка
CARRY
2.10.1.3
Битовое поле DP в
ST0_55
Биты
Имя
Описание
Доступность
Значение
сброса
8-0
DP
Копирование 9-ти
старших битов регистра страницы данных
(DP).
Чтение/запись
0
Данное
9 - битовое поле обеспечивается для
совместимости с кодом, передаваемым
из TMS320C54x DSP. TMS320C55x DSPs
обладают указателем страницы данных,
не зависящим от ST0_55. Любое изменение
битов 15-7 регистра страницы данных –
DP(15-7)
– отражается на битах состояния DP.
Аналогично, любое изменение битов
состояния DP
отражается на DP(15-7).
При генерации адресов для DP
режима прямой адресации ЦП использует
полный регистр страницы данных DP(15-0).
Вам не потребуется применять биты
состояния DP;
вы можете модифицировать DP
непосредственно.