Ris_DSP / RIS_C25_C30N
.doc
|
КОМАНДЫ УПРАВЛЕНИЯ |
|||
|
BIT |
Тестирование бита |
dma, bit code; ind, bit code[,next ARP] |
1 |
|
BITT |
Тестирование бита, определенного Т-регстром |
dma; ind[,next ARP] |
1 |
|
CNFD |
Объявить влок как память данных |
None |
1 |
|
CNFP |
Объявить влок как память программ |
None |
1 |
|
DINT |
Блокирование прерываний |
None |
1 |
|
EINT |
Разрешение прерываний |
None |
1 |
|
IDLE |
Ожидание прерываний |
None |
1 |
|
LST |
Загрузка регистра состояния ST0 |
dma; ind[,next ARP] |
1 |
|
LST1 |
Загрузка регистра состояния ST1 |
dma; ind[,next ARP] |
1 |
|
NOP |
Нет операции |
None |
1 |
|
POP |
Вытолкнуть вершину стека в младшее слово АСС |
None |
1 |
|
POPD |
Вытолкнуть вершину стека в ячейку памяти данных |
dma; ind[,next ARP] |
1 |
|
PSHD |
Вытолкнуть ячейку памяти данных в вершину стека |
dma; ind[,next ARP] |
1 |
|
PUSH |
Вытолкнуть младшее слово АСС в вершину стека |
None |
1 |
|
RС # |
Сбросить бит переноса |
None |
1 |
|
RHM # |
Сбросить режим ПДП |
None |
1 |
|
ROVM |
Сбросить режим переполнения |
None |
1 |
|
RPT |
Повторить команду столько раз, сколько указано в ячейке памяти данных |
dma; ind[,next ARP] |
1 |
|
RPTK |
Повторить команду столько раз, сколько указано в константе |
constant |
1 |
|
RSXM |
Сбросить режим расширения знака |
None |
1 |
|
RTC # |
Сбросить флаг тест-управления |
None |
1 |
|
SC # |
Установить бит переноса |
None |
1 |
|
SHM # |
Установить режим ПДП |
None |
1 |
|
SOVM |
Установить режим переполнения |
None |
1 |
|
SST |
Сохранить содержимое регистра состояния ST0 |
dma; ind[,next ARP] |
1 |
|
SST1 |
Сохранить содержимое регистра состояния ST1 |
dma; ind[,next ARP] |
1 |
|
SSXM |
Установить режим расширения знака |
None |
1 |
|
STC # |
Установить флаг тест-управления |
None |
1 |
|
TRAP |
Программное прерывание |
None |
1 |
Рис.3.1 Условное графическое обозначение TMS320C25
Рис.3.2 Формирование сигнала «СБРОС»
а) б)
рис.3.3 Синхронизация процессора
Рис.3.4 Подключение внешней памяти данных
Рис.3.5 Подключение внешней памяти программ
Рис.3.6 Входной аналоговый интерфейс
Рис.3.7 Выходной аналоговый интерфейс
р
ис.4.1
Архитектура TMS320C30
рис.4.2 Центральное процессорное устройство
Таблица 4.1.
|
РЕГИСТРЫ |
ВЫПОЛНЯЕМАЯ ФУНКЦИЯ |
|
R0 |
Регистp двойной точности 0 |
|
R1 |
Регистp двойной точности 1 |
|
R2 |
Регистp двойной точности 2 |
|
R3 |
Регистp двойной точности 3 |
|
R4 |
Регистp двойной точности 4 |
|
R5 |
Регистp двойной точности 5 |
|
R6 |
Регистp двойной точности 6 |
|
R7 |
Регистp двойной точности 7 |
|
AR0 |
Вспомогательный pегистp 0 |
|
AR1 |
Вспомогательный pегистp 1 |
|
AR2 |
Вспомогательный pегистp 2 |
|
AR3 |
Вспомогательный pегистp 3 |
|
AR4 |
Вспомогательный pегистp 4 |
|
AR5 |
Вспомогательный pегистp 5 |
|
AR6 |
Вспомогательный pегистp 6 |
|
AR7 |
Вспомогательный pегистp 7 |
|
DP |
Указатель стpаницы данных |
|
IR0 |
Индексный pегистp 0 |
|
IR1 |
Индексный pегистp 1 |
|
BK |
Размеp блока |
|
SP |
Указатель системного стека |
|
ST |
Регистp слова-состояния процессора |
|
IE |
Разpешение пpеpывания CPU/DMA |
|
IF |
Флаги пpеpываний CPU |
|
IOF |
Флаги I/O |
|
RS |
Адpес начала повтоpения |
|
RE |
Адpес конца повтоpения |
|
RC |
Счетчик повтоpений |
|
PC |
Пpогpаммный счетчик |
рис.4.3 Внутренние шины и организация внутренней памяти процессора TMS320C30
р
ис.4.4
Карта памяти TMS320C30
Таблица 4.2.
|
Адрес регистра |
Ассемблерный синтаксис |
Выполняемая функция |
|
00h |
R0 |
Регистp двойной точности 0 |
|
01h |
R1 |
Регистp двойной точности 1 |
|
02h |
R2 |
Регистp двойной точности 2 |
|
03h |
R3 |
Регистp двойной точности 3 |
|
04h |
R4 |
Регистp двойной точности 4 |
|
05h |
R5 |
Регистp двойной точности 5 |
|
06h |
R6 |
Регистp двойной точности 6 |
|
07h |
R7 |
Регистp двойной точности 7 |
|
08h |
AR0 |
Вспомогательный pегистp 0 |
|
09h |
AR1 |
Вспомогательный pегистp 1 |
|
0Ah |
AR2 |
Вспомогательный pегистp 2 |
|
0Bh |
AR3 |
Вспомогательный pегистp 3 |
|
0Ch |
AR4 |
Вспомогательный pегистp 4 |
|
0Dh |
AR5 |
Вспомогательный pегистp 5 |
|
0Eh |
AR6 |
Вспомогательный pегистp 6 |
|
0Fh |
AR7 |
Вспомогательный pегистp 7 |
|
10h |
DP |
Указатель стpаницы данных |
|
11h |
IR0 |
Индексный pегистp 0 |
|
12h |
IR1 |
Индексный pегистp 1 |
|
13h |
BK |
Размеp блока |
|
14h |
SP |
Указатель системного стека |
|
15h |
ST |
Регистp слова-состояния процессора |
|
16h |
IE |
Разpешение пpеpывания CPU/DMA |
|
17h |
IF |
Флаги пpеpываний CPU |
|
18h |
IOF |
Флаги I/O |
|
19h |
RS |
Адpес начала повтоpения |
|
1Аh |
RE |
Адpес конца повтоpения |
|
1Bh |
RC |
Счетчик повтоpений |
Рис.4.5 Прямая адресация
Таблица 4.3.
|
Поле mod |
Синтаксис |
Операция |
Описание |
|
Косвенные операции со смещением |
|||
|
00000 |
*+ARn(disp) |
addr=ARn+disp |
с предварительным добавлением смещения |
|
00001 |
*-ARn(disp) |
addr=ARn-disp |
с предварительным вычитанием смещения |
|
00010 |
*++ARn(disp) |
addr=ARn+disp ARn=ARn+disp |
c предварительным добавлением смещения и модификацией |
|
00011 |
*--ARn(disp) |
addr=ARn-disp ARn=ARn-disp |
c предварительным вычитанием смещения и модификацией |
|
00100 |
*ARn++(disp) |
addr=ARn ARn=ARn+disp |
c последующим добавлением смещения и модификацией |
|
00101 |
*ARn--(disp) |
addr=ARn ARn=ARn-disp |
c последующим вычитанием смещения и модификацией |
|
00110 |
*ARn++(disp)% |
addr=ARn ARn=circ(ARn+disp) |
c последующим добавлением смещения и циклической модификацией |
|
00111 |
*ARn--(disp)% |
addr=ARn ARn=circ(ARn-disp) |
c последующим вычитанием смещения и циклической модификацией |
|
Косвенные адресации с использованием индексного регистра IR0 |
|||
|
01000 |
*+ARn(IR0) |
addr=ARn+IR0 |
с предварительным добавлением индекса |
|
01001 |
*-ARn(IR0) |
addr=ARn-IR0 |
с предварительным вычитанием индекса |
|
01010 |
*++ARn(IR0) |
addr=ARn+IR0 ARn=ARn+IR0 |
с предварительным добавлением индекса и модификацией |
|
01011 |
*--ARn(IR0) |
addr=ARn-IR0 ARn=ARn-IR0 |
с предварительным вычитанием индекса и модификацией |
|
01100 |
*ARn++(IR0) |
addr=Arn ARn=ARn+IR0 |
с последующим добавлением индекса и модификацией |
|
01101 |
*ARn--(IR0) |
addr=Arn ARn=ARn-IR0 |
с последующим вычитанием индекса и модификацией |
|
01110 |
*ARn++(IR0)% |
addr=ARn ARn=circ(ARn+IR0) |
с последующим добавлением индекса и циклической модификацией |
|
01111 |
*ARn--(IR0)% |
addr=ARn ARn=circ(ARn-IR0) |
с последующим вычитанием индекса и циклической модификацией |
|
Косвенные адресации с использованием индексного регистра IR1 |
|||
|
10000 |
*+ARn(IR1) |
addr=ARn+IR1 |
с предварительным добавлением индекса |
|
10001 |
*-ARn(IR1) |
addr=ARn-IR1 |
с предварительным вычитанием индекса |
|
10010 |
*++ARn(IR1) |
addr=ARn+IR1 ARn=ARn+IR1 |
с предварительным добавлением индекса и модификацией |
|
10011 |
*--ARn(IR1) |
Addr=ARn-IR1 ARn=ARn-IR1 |
с предварительным вычитанием индекса и модификацией |
|
10100 |
*ARn++(IR1) |
Addr=ARn ARn=ARn+IR1 |
с последующим добавлением индекса и модификацией |
|
10101 |
*ARn--(IR1) |
Addr=ARn ARn=ARn-IR1 |
с последующим вычитанием индекса и модификацией |
|
10110 |
*ARn++(IR1)% |
addr=ARn ARn=circ(ARn+IR1) |
с последующим добавлением индекса и циклической модификацией |
|
10111 |
*ARn--(IR1)% |
Addr=ARn ARn=circ(ARn-IR1) |
с последующим вычитанием индекса и циклической модификацией |
|
Специальные случаи косвенной адресации |
|||
|
11000 |
*ARn |
addr=ARn |
косвенная адресация |
|
11001 |
+ARn++(IR0)B |
addr=ARn ARn=B(ARn+IR0) |
с последующим добавлением индекса и модификацией с реверсом бит адреса данных |
а)
Косвенная адресация б)
Косвенная адресация c предварительным
добавлением
(вычитанием) смещения
в) Косвенная адресация c предварительным г) Косвенная адресация c последующим
добавлением (вычитанием) смещения и добавлением (вычитанием) смещения и
модификацией
модификацией
д) Косвенная адресация c последующим е) Косвенная адресация c предварительным
добавлением (вычитанием) смещения добавлением (вычитанием) индексного
и
циклической модификацией
регистра
ж) Косвенная адресация c предварительным з) Косвенная адресация c последующим
добавлением (вычитанием) индексного добавлением (вычитанием) индекса
регистра и модификацией и модификацией
и) Косвенная адресация c последующим к) Косвенная адресация c последующим
добавлением (вычитанием) индекса добавлением (вычитанием) индекса
и циклической модификацией и модификацией с реверсом бит адреса
Рис.4.6 Способы косвенной адресации
Перечень команд процессора TMS320C30. Таблица 4.4.
|
Команда |
Описание |
|
|
ABSF |
модуль FP-числа |
|
|
ABSI |
модуль целого числа |
|
|
ADDC |
сложение целых чисел с переносом |
|
|
ADDC3 |
3-х операндное сложение целых чисел с переносом |
|
|
ADDF |
сложение FP-чисел |
|
|
ADDF3 |
3-х операндное сложение FP-чисел |
|
|
ADDI |
сложение целых чисел |
|
|
ADDI3 |
3-х операндное сложение целых чисел |
|
|
AND |
поразрядное логическое И |
|
|
AND3 |
3-х операндное поразрядное логическое И |
|
|
ANDN |
поразрядное логическое И с дополнением |
|
|
ANDN3 |
3-х операндное поразрядное логическое И с дополнением |
|
|
ASH |
арифметический сдвиг |
|
|
ASH3 |
3-х операндный арифметический сдвиг |
|
|
Bcond |
условный переход (стандартный) |
|
|
BcondD |
условный переход (с задержкой) |
|
|
BR |
безусловный переход (стандартный) |
|
|
BRD |
безусловный переход (с задержкой) |
|
|
CALL |
вызов подпрограммы |
|
|
CALLcond |
условный вызов подпрограммы |
|
|
CMPF |
сравнение FP-чисел |
|
|
CMPF3 |
3-х операндное сравнение FP-чисел |
|
|
CMPI |
сравнение целых чисел |
|
|
CMPI3 |
3-х операндное сравнение целых чисел |
|
|
DBcond |
декремент ARn и переход по условию |
|
|
DBcondD |
декремент ARn и переход по условию (с задержкой) |
|
|
FIX |
перевод FP-числа в целое число |
|
|
FLOAT |
перевод целого числа в FP-число |
|
|
IACK |
подтверждение прерывания |
|
|
IDLE |
ожидать прерывания |
|
|
LDE |
загрузить экспоненту FP-числа |
|
|
LDF |
загрузить FP-число |
|
|
LDFcond |
условная загрузка FP-числа |
|
|
LDFI |
загрузить значение FP-числа с блокировкой |
|
|
LDI |
загрузить целое число |
|
|
LDIcond |
условная загрузка целого числа |
|
|
LDII |
загрузка целого числа с блокировкой |
|
|
LDM |
загрузить мантиссу FP-числа |
|
|
LSH |
логический сдвиг |
|
|
LSH3 |
3-х операндный логический сдвиг |
|
|
MPYF |
умножение FP-чисел |
|
|
MPYF3 |
3-х операндное умножение FP-чисел |
|
|
MPYI |
умножение целых чисел |
|
|
MPYI3 |
3-х операндное умножение целых чисел |
|
|
NEGB |
преобразование целого в отрицательное целое с учетом бита переноса |
|
|
NEGF |
преобразование FP-числа в отрицательное FP-число |
|
|
NEGI |
преобразование целого в отрицательное целое |
|
|
NOP |
пустая команда |
|
|
NORM |
нормализация FP-числа |
|
|
NOT |
поразрядная логическая инверсия |
|
|
OR |
поразрядное логическое ИЛИ |
|
|
OR3 |
3-х операндное поразрядное логическое ИЛИ |
|
|
POP |
загрузка целого числа из стека |
|
|
POPF |
загрузка FP-числа из стека |
|
|
PUSH |
сохранение целого числа в стеке |
|
|
PUSHF |
сохранение FP-числа в стеке |
|
|
RETIcond |
возврат из прерывания условный |
|
|
RETScond |
возврат из подпрограммы условный |
|
|
RND |
округление FP-числа |
|
|
ROL |
циклический сдвиг влево |
|
|
ROLC |
циклический сдвиг влево через бит переноса |
|
|
ROR |
циклический сдвиг вправо |
|
|
RORC |
циклический сдвиг вправо через бит переноса |
|
|
RPTB |
повторить блок команд |
|
|
RPTS |
повторить следующую команду |
|
|
SIGI |
сигнализировать операцию с блокировкой |
|
|
STF |
поместить FP-число в память |
|
|
STIFI |
поместить FP-число в память, с блокировкой |
|
|
STI |
поместить целое число в память |
|
|
STII |
поместить целое число в память, с блокировкой |
|
|
SUBB |
вычитание целого с учетом заема |
|
|
SUBB3 |
3-х операндное вычитание целого с учетом заема |
|
|
SUBC |
условное вычитание целого |
|
|
SUBF |
вычитание FP-чисел |
|
|
SUBF3 |
3-х операндное вычитание FP-чисел |
|
|
SUBI |
вычитание целых чисел |
|
|
SUBI3 |
3-х операндное вычитание целых чисел |
|
|
SUBRB |
вычитание с заемом и реверсом адресов |
|
|
SUBRF |
вычитание FP-чисел с реверсом адресов |
|
|
SUBRI |
вычитание целых чисел с реверсом адресов |
|
|
SWI |
программное прерывание |
|
|
TRAPcond |
условная TRAP команда |
|
|
TSTB |
тестирование битовых полей |
|
|
TSTB3 |
3-х операндное тестирование битовых полей |
|
|
XOR |
исключающее или |
|
|
XOR3 |
3-х операндное исключающее или |
|
|
Параллельные арифметические команды с загрузкой |
||
|
ABSF||STF |
LSH3||STI |
|
|
ABSF||STF |
MPYF3||STF |
|
|
ABSI||STI |
MPYI3||STI |
|
|
ADDF3||STF |
NEGF||STF |
|
|
ADDI3||STI |
NEGI||STI |
|
|
AND3||STI |
NOT3||STI |
|
|
ASH3||STI |
OR3||STI |
|
|
FIX||STI |
STF||STF |
|
|
FLOAT||STI |
STI||STI |
|
|
FLOAT||STF |
SUBF3||STF |
|
|
LDF||STF |
SUBI3||STI |
|
|
LDI||STI |
XOR3||STI |
|
|
Команды параллельной загрузки |
||
|
LDF||LDF |
||
|
LDI||LDI |
||
|
Команды параллельного умножения и сложения/вычитания |
||
|
MPYF3||ADDF3 |
||
|
MPYF3||SUBF3 |
||
|
MPYI3||ADDI3 |
||
|
MPYI3||SUBI3 |
||
