Пр о ц е с с о р TMS 3 2 0C4 x
67
•
разрешить внутренние прерывания синхронизации от коммуникационного
порта в регистре DIE.
Для правильной работы необходимо сбросить бит ICH (или OCH) в реги-
стре управления коммуникационного порта и разрешить прерывания процессо-
ра установкой бита GIE в регистре состояния ST.
Программирование сопроцессора ПДП весьма разнообразно из-за боль-
шого количества вариантов его использования. Здесь приводится два простых
примера работы с сопроцессором ПДП.
П р и м е р 2 . 1 .
В примере показана инициализация ПДП канала для
ввода данных с коммуникационного порта в объединенном режиме. Режим ус-
танавливается соответствующим битом в регистре управления канала ПДП и
осуществляет передачу данных память-память. В этом случае источником дан-
ных является входной буфер коммуникационного порта, который адресуется
как ячейка памяти. При адресации источника в циклах ПДП не производится
изменения адреса источника (индекс адреса источника равен нулю) и все слова
считываются в циклах ПДП с одного и того же адреса - адреса входного буфера
коммуникационного порта. Приемником в циклах ПДП является внутренняя
память процессора. Ячейки памяти адресуются последовательно с увеличением
адресов (индекс адреса приемника равен единице).
Инициализация регистров канала ПДП производится с использованием
прямой адресации. Константы загрузки располагаются, как обычно, в секции
.data программы. Регистр управления каналом ПДП записывается последним,
поскольку этой записью осуществляется запуск канала.
Последней командой примера устанавливается синхронизация ПДП от
сигнала готовности коммуникационного порта ICRDY. Установка синхрониза-
ции осуществляется записью соответствующего кода в регистр DIE
.
Пример 2.1. Ввода данных в режиме ПДП с использованием синхронизации передачи
от прерываний ICRDY в объединенном режиме ПДП
.data
DMA4
.word
001000E0h
; адрес регистра управления канала 4 ПДП
CONTR
.word
00C00040h
; управляющий код канала 4
SOURCE
.word
00100081h
; адрес источника данных (порт 4)
SRC_IDX
.word
0
; индекс адреса источника
COUNT
.word
100h
; счетчик длины блока
DESTIN
.word
002FFC00h
; адрес приемника (внутренняя память)
DST_IDX
.word
1
; индекс адреса приемника
.text
START LDPK
DMA4
; установка указателя страницы DP
LDA
@DMA4, AR0
; адрес регистра управления ПДП канала
LDI
@SOURCE, R0
STI
R0,
∗
+AR0(1)
; загрузка адреса источника
LDI
@SRC_IDX, R0
STI
R0,
∗
+AR0(2)
; загрузка индекса адреса источника
LDI
@COUNT, R0