Регистры
состояния (ST0_55-ST3_55)
2-40
Замечание:
Если
вы хотите загрузить ST0_55, но не хотите
доступа на изменение содержимого
регистра страницы данных, используйте
операции И или ИЛИ cо
значением маски, которое не изменяет
9 младших битов (LSB) в ST0_55. Для операции
ИЛИ поместите значение маски 0 в 9 LSB.
Для операции И поместите значение маски
1 в 9 LSB.
2.10.1.4
Биты
TC1 и TC2 в ST0_55
Бит
Имя
Описание
Доступность
Значение
сброса
12
TC2
Флаг
2 теста/контроля
Чтение/запись
1
13
TC1
Флаг
1 теста/контроля
Чтение/запись
1
Главной функцией битов
теста/контроля является содержание
результатов тестирования,, произведенного
с помощью конкретных инструкций. Далее
приводится главная информация о данных
битах:
Все
инструкции, которые влияют на флаги
теста/контроля, позволяют вам выбрать,
на какой флаг, TC1
или TC2,
воздействовать.
TCx
(где x = 1 или 2) или булево выражение TCx
могут быть использованы как триггер в
условной инструкции.
Вы можете очищать и устанавливать
TC1 и TC2 при помощи следующих инструкций:
BCLR
TC1 ; Очистка
TC1 BSET TC1 ; Установка
TC1 BCLR TC2 ; Очистка
TC2 BSET TC2 ; Установка
TC2
Данная секция описывает
биты ST1_55 в алфавитном порядке.
2.10.2.1
Битовое поле ASM в
ST1_55
Биты
Имя
Описание
Доступность
Значение
сброса
4-0
ASM
Бит
режима сдвига аккумулятора
Чтение/запись
00000b
В TMS320C54x-совместимом режиме (C54CM = 1) ASM
обеспечивает значение сдвига в диапазоне
от -16 до 15. Значение сдвига в пять бит
закодировано как поразрядное дополнение
до номера 2.
Если
C54CM
= 1:
ASM обеспечивает TMS320C54x кодом, передающимся
на TMS320C55x DSP. Конкретные C54x инструкции
определяют сдвиг значения аккумулятора,
а ASM содержит число сдвигов данных
инструкций.2.10.2 Биты st1_55
Регистры
состояния (ST0_55-ST3_55)
2-41
Регистры
ЦП
Если
C54CM
= 0:
ASM игнорируется. Число сдвигов для
операции сдвига аккумулятора поступает
из буферного регистра (T0, T1, T2 или T3),
указанного в C55x инструкции, или из
константы, сложенной в C55x инструкции.
2.10.2.2
Бит BRAF в ST1_55
Бит
Имя
Описание
Доступность
Значение
сброса
15
BRAF
Активный
флаг блочного повторения
Чтение/запись
0
В TMS320C54x-совместимом режиме (C54CM = 1) BRAF
отображает/контролирует состояние
операции блочного повторения.
Если
C54CM
= 1:
BRAF сохраняется и восстанавливается с
ST1_55 в течение переключения контекста,
вызванного запросами, прерываниями и
возвратами. Считывайте BRAF для определения
активности операции блочного повторения.
Очищайте BRAF, если вы хотите остановить
операцию блочного повторения. BRAF
автоматически очищается, когда инструкции
отдаленного перехода (FB) или отдаленного
запроса (FCALL) выполняются.
BRAF
Активность
блочного повторения
0
Нет
активности. Когда значение счетчика
блочного повторения 0 (BRC0) становится
меньше нуля, ЦП очищает BRAF.
1
Операция
активна. Когда ЦП исполняет инструкцию
блочного повторения, ЦП устанавливает
BRAF.
Если
C54CM
= 0:
BRAF не используется. Состояние операций
повторения поддерживается автоматически
с помощью ЦП (смотрите описание для
CFCT в секции 2.7 на странице 2-21).
Для остановки активной
операции блочного повторения в
C54x-совместимом режиме можно очистить
BRAF с помощью данных инструкций:
BCLR
BRAF
;
Очистка
BRAF
Вы можете установить
BRAF через следующую инструкцию:
BSET
BRAF
;
Установка BRAF
Регистры
состояния (ST0_55-ST3_55)
2-42
2.10.2.3
Бит C16 в ST1_55
Бит
Имя
Описание
Доступность
Значение
сброса
7
C16
Бит
двойного 16 - разр. арифметического
режима
Чтение/запись
0
В TMS320C54x-совместимом режиме (C54CM = 1)
выполнение некоторых инструкций зависит
от C16. C16 определяет выполнение инструкции
в одиночной 32 - разрядной операции
(арифметика с удвоенной точностью) или
в двойной 16 - разрядой операции (двойная
16 - разрядная арифметика).
Если
C54CM
= 1:
Арифметика осуществляется в ALU блока
D
в зависимости от C16:
C16
Двойной
16 - разрядный режим ...
0
Отключен.
Для инструкции, которая зависит от C16,
ALU блока D
производит 32 - разрядную операцию.
1
Включен.
Для инструкции, которая зависит от C16,
ALU блока D
производит две 16 - разрядные операции.
Если
C54CM
= 0:
ЦП игнорирует C16. Синтаксис инструкции
определяет использование либо двойной
16 - разрядной инструкции, либо 32 -
разрядной инструкции.
Вы можете установить
и очистить C16 при помощи следующих
инструкций:
BCLR
C16
;
Очистка C16
BSET
C16
;
Установка C16
2.10.2.4
Бит C54CM в ST1_55
Бит
Имя
Описание
Доступность
Значение
сброса
5
C54CM
TMS320C54x
бит совместимого режима
Чтение/запись
1
Бит C54CM определяет,
будет ли ЦП поддерживать код, разработанный
для TMS320C54x DSP:
C54CM
C54x-совместимый
режим ...
0
Запрещен.
ЦП поддерживает код, написанный для
TMS320C55x (C55x) DSP.
1
Разрешен.
Данный режим должен быть установлен,
когда вы используете код, который
первоначально был разработан для
TMS320C54x (C54x) DSP. Все ресурсы ЦП C55x остаются
доступными; следовательно, при трансляции
кода можно использовать преимущество
дополнительных возможностей C55x для
оптимизации вашего кода.
Изменяйте режимы
посредством данных инструкций и директив
ассемблера:
BCLR
C54CM
;
Очистка C54CM (осущ. во времени выполнения
программы)
.C54CM_off
;
Указать ассемблеру C54CM = 0
BSET
C54CM
;
Установить C54CM (осущ. во времени
выполнения)
.C54CM_on
;
Указать ассемблеру C54CM = 1
Регистры
состояния (ST0_55-ST3_55)
2-43
Регистры
ЦП
2.10.2.5
Бит CPL в ST1_55
Бит
Имя
Описание
Доступность
Значение
сброса
14
CPL
Бит
режима компилятора
Чтение/запись
0
Бит CPL определяет,
какой из двух режимов прямой адресации
активен:
CPL
Выбранный
режим прямой адресации
0
DP
режим прямой адресации. Прямой доступ
к пространству данных производится
относительно регистра страницы данных
(DP).
1
SP режим прямой
адресации. Прямой доступ к пространству
данных осуществляется относительно
указателя стека данных (SP). DSP указывает
работать в режиме компилятора.
Замечание:
Прямой
доступ к пространству I/O всегда
совершается относительно регистра
страницы периферийных данных (PDP).
Изменяйте режимы
посредством данных инструкций и директив
ассемблера:
BCLR
CPL
;
Очистка CPL (во времени выполнения
программы)
.CPL_off
;
Указать ассемблеру CPL = 0
BSET
CPL
;
Установка CPL (во времени выполнения
программы)
.CPL_on
;
Указать ассемблеру CPL = 1
2.10.2.6
Бит FRCT в ST1_55
Бит
Имя
Описание
Доступность
Значение
сброса
6
FRCT
Бит
дробного режима
Чтение/запись
0
Бит FRCT включает или
отключает дробный режим:
FRCT
Дробный
режим ...
0
Отключен.
Результаты операции умножения не
сдвигаются.
1
Включен.
Результаты операций умножения сдвигаются
влево на 1 бит для десятичной точки. Это
необходимо, когда вы перемножаете два
знаковых значения Q15, и вам нужен
результат Q31.
Вы можете очищать и
устанавливать FRCT через данные инструкции:
BCLR
FRCT
;
Очистка FRCT
BSET
FRCT
;
Установка FRCT
Регистры
состояния (ST0_55-ST3_55)
2-44
2.10.2.7
Бит HM в ST1_55
Бит
Имя
Описание
Доступность
Значение
сброса
12
HM
Бит
режима фиксации
Чтение/запись
0
Когда DSP подтверждает
активный HOLD_ сигнал, DSP помещает свой
внешний интерфейс в высокоимпедансное
состояние. В зависимости от HM DSP может
также останавливать исполнение
внутренних программ:
HM
Режим
фиксации
0
DSP
продолжает выполнение инструкций из
внутренней памяти программ.
1
DSP
останавливает выполнение инструкций
из внутренней памяти программ.
Вы можете использовать
следующие инструкции для установки и
очистки HM:
BCLR
HM
;
Очистка HM
BSET
HM
;
Установка HM
2.10.2.8
Бит
INTM в
ST1_55
Бит
Имя
Описание
Доступность
Значение
сброса
11
INTM
Бит
режима прерывания
Чтение/запись
1
Бит INTM глобально
разрешает или запрещает маскируемые
прерывания как это показано в следующей
таблице. Данный бит не влияет на
немаскируемые прерывания (те, которые
не могут быть блокированы программно).
INTM
Описание
0
Все
немаскируемые прерывания разрешены
1
Все
маскируемые прерывания запрещены
Далее приведена
основная информация о бите INTM:
Модифицируйте
бит INTM очищением бита состояния и
установкой инструкций (смотрите пример
ниже). Только другие инструкции, влияющие
на INTM,
являются инструкциями программного
прерывания и программного сброса,
которые устанавливают INTM
до перехода к обработчику прерывания.
BCLR
INTM
;
Очистка
INTM
BSET
INTM
;
Установка INTM
Состояние
бита INTM автоматически сохраняется,
когда ЦП подтверждает запрос прерывания.
В частности, бит INTM
сохраняется, когда ЦП сохраняет ST1_55
в стек данных.
До
исполнения обработчика прерывания
(ISR) ЦП автоматически устанавливает бит
INTM
на глобальный запрет маскируемых
прерываний. ISR
может переразрешить маскируемые
прерывания очищением бита INTM.
Инструкция
возврата из прерывания восстанавливает
бит INTM из стека данных.
Регистры
состояния (ST0_55-ST3_55)
2-45
Регистры
ЦП
Когда
ЦП останавливается в режиме эмуляции
реального времени отладчика, INTM
игнорируется, и только прерывания,
критичные по времени, могут быть
обработаны (смотрите описание регистров
разрешения прерывания отладки на
странице 2-30).
2.10.2.9
Бит M40 в ST1_55
Бит
Имя
Описание
Доступность
Значение
сброса
10
M40
Бит
режима вычисления для блока D
Чтение/запись
0
Бит M40 выбирает один
из двух режимов вычисления для блока
D:
M40
Режим
вычисления блока D
...
0
32
- разрядный режим. В данном режиме:
Знаковый бит
извлекается из позиции 31 бита.
В течение
арифметики бит переноса определяется
в позицию 31 бита.
Переполнение
детектируется в позиции 31 бита.
При насыщении
значением насыщения является 00 7FFF
FFFFh (положительное переполнение) или
FF 8000 0000h (отрицательное переполнение).
Сравнения
аккумуляторов с 0 совершаются посредством
битов 31-0.
Операции
сдвига (циклического сдвига) производятся
на 32 - разрядных значениях.
При
сдвиге влево аккумуляторов, сдвинутые
биты извлекаются из позиции 31 бита.
При
сдвиге вправо аккумуляторов, сдвинутые
биты вносятся в позицию 31 бита.
При
знаковых сдвигах аккумуляторов, если
SXMD = 0, 0 копируется в сторожевые биты
аккумуляторов; если SXMD
= 1, бит 31 копируется в сторожевые биты
аккумуляторов. При любых логических
или циклических сдвигах аккумуляторов
сторожевые биты аккумулятора назначения
очищаются.
Замечание:
В TMS320C54x-совместимом режиме (C54CM = 1)
существуют несколько исключений :
знаковый бит аккумулятора извлекается
из позиции бита 39. Сравнение аккумуляторов
с 0 осуществляется через биты 39-0. Знаковые
сдвиги производятся при условии M40 =
1.
1
40
- разрядный режим. В данном режиме:
Знаковый
бит извлекается из позиции бита 39.
В течение
арифметики бит переноса определяется
в позицию бита 39.
Переполнение
детектируется в позиции бита 39.
При насыщении
значением насыщения является 7F FFFF
FFFFh (положительное переполнение) или
80 0000 0000h (отрицательное переполнение)
Сравнения
аккумуляторов с 0 совершаются посредством
битов 39-0.
Операции
сдвига (циклического сдвига) производятся
на 40 - разрядных значениях.
При
сдвиге влево аккумуляторов, сдвинутые
биты извлекаются из позиции бита 39.
При
сдвиге вправо аккумуляторов, сдвинутые
биты вносятся в позицию бита 39.
Регистры
состояния (ST0_55-ST3_55)
2-46
Вы можете установить
и очистить M40 при помощи следующих
инструкций:
BCLR
M40
;
Очистка M40
BSET
M40
;
Установка M40
2.10.2.10
Бит SATD в ST1_55
Бит
Имя
Описание
Доступность
Значение
сброса
9
SATD
Бит
режима насыщения для блока D
Чтение/запись
0
Бит
SATD определяет, произошло ли насыщение
ЦП результатов переполнения в блоке
D:
SATD
Режим
насыщения в блоке D
...
0
Отключен.
Насыщение не производится.
1
Включен.
Если операция, совершаемая в блоке, D
привела к переполнению, то результат
насыщен. Насыщение зависит от значения
бита M40.
M40
= 0 ЦП насыщает результат до 00 7FFF
FFFFh (положительное переполнение) или
до FF 8000 0000h (отрицательное).
M40
= 1
ЦП насыщает
результат до 7F FFFF FFFFh (положительное
переполнение) или 80 0000 0000h (отрицательное).
Если вы хотите
совместимости с кодом TMS320C54x, убедитесь,
что M40 = 0.
Вы можете устанавливать
и очищать SATD посредством данных
инструкций:
BCLR
SATD
;
Очистка SATD
BSET
SATD
;
Установка SATD
Регистры
состояния (ST0_55-ST3_55)
2-47
Регистры
ЦП
2.10.2.11
Бит SXMD в ST1_55
Бит
Имя
Описание
Доступность
Значение
сброса
8
SXMD
Бит
режима знакового расширения для блока
D
Чтение/запись
1
Бит
SXMD включает или отключает режим знакового
расширения, который влияет на загрузку
аккумулятора, а также воздействует на
операции знакового сдвига, сложения и
вычитания, осуществляемых в блоке D:
SXMD
Режим
знакового расширения ...
0
Отключен.
Когда режим знакового расширения
отключен:
Для
40 - разрядных операций операнды в 16 бит
или меньше дополняются нулями до 40 бит.
Для
инструкции условного вычитания любой
16 - разр. делитель производит ожидаемый
результат.
Когда
арифметическое логическое устройство
(ALU)
блока D
локально сконфигурировано в двойной
16 - разрядный режим (через двойную 16 -
разрядную арифметическую инструкцию):
16
- разр. значения, применяемые в старшей
части ALU
блока D,
дополняются нулями до 24 бит.
16
- разрядные аккумуляторы, деленные на
два, дополняются нулями, если они
сдвинуты вправо.
При знаковом
сдвиге аккумулятора при 32 - разрядной
операции (M40 = 0) 0 копируется в сторожевые
биты аккумулятора (39-32).
При
знаковом правом сдвиге аккумулятора
сдвинутая величина дополняется нулями.
1
Включен.
В данном режиме:
Для
40 - разр. операций операнды в 16 бит или
меньше дополняются знаковым разрядом
до 40 бит.
Для
инструкции условного вычитания любой
16 - разр. делитель должен быть положительной
величиной (старший бит (MSB)
должен быть равен 0).
Когда
арифметическое логическое устройство
(ALU)
блока D
локально сконфигурировано в двойной
16 - разрядный режим (через двойную 16 -
разрядную арифметическую инструкцию):
16
- разр. значения, применяемые в старшей
части ALU
блока D,
дополн. знаковым разр. до 24 бит.
16
- разр. аккумуляторы, деленные на два,
дополн. знаковым разрядом, если они
сдвинуты вправо.
При
знаковом сдвиге аккумулятора при 32-
разрядной операции (M40 = 0) 31 копируется
в сторожевые биты аккумулятора (39-32).
При
знаковом правом сдвиге аккумулятора
сдвинутая величина дополняется знаковым
разр., пока выражение uns()
не используется для обозначения значения
аккумулятора, как беззнаковое.
Для
беззнаковых операций (операции булевой
логики, циклического и логического
сдвига) операнды входа всегда дополняются
нулями до 40 бит независимо от значения
SXMD.
Для
операций, производимых в блоке
умножителя-накопителя (MAC), 16 - разрядные
входные операнды дополняются знаковым
разрядом до 17 бит независимо от значения
SXMD.
Если
операнд в инструкции вложен в uns(), то
он рассматривается, как беззнаковый,
независимо от значения SXMD.