Texas Instruments TMS320C3x User Manual
Page 455

DMA Controller
12-76
Example 12–9. DMA Transfer With Serial-Port Receive Interrupt
* TITLE DMA TRANSFER WITH SERIAL PORT RECEIVE INTERRUPT
*
.GLOBAL START
.DATA
DMA
.WORD
808000H
; DMA GLOBAL-CONTROL REG ADDRESS
CONTROL
.WORD
0D43H
; DMA GLOBAL-CONTROL REG INITIALIZATION
SOURCE
.WORD
80804CH
; DATA SOURCE-ADDRESS: SERIAL PORT INPUT REG
DESTIN
.WORD
_ARRAY
; DATA DESTINATION ADDRESS
COUNT
.WORD
128
; NUMBER OF WORDS TO TRANSFER
IEVAL
.WORD
00200400H
; IE REGISTER VALUE
RESET1
.WORD
0D40H
; DMA RESET
.BSS
_ARRAY,128
; DATA ARRAY LOCATED IN .BSS SECTION
; THE UNDERSCORE USED IS JUST TO MAKE IT
; ACCESSIBLE FROM C (OPTIONAL)
SPORT
.WORD
808040H
; SERIAL-PORT GLOBAL-CONTROL REG ADDRESS
SGCCTRL
.WORD
0A300080H
; SERIAL-PORT GLOBAL-CONTROL REG INITIALIZATION
SRCTRL
.WORD
111H
; SERIAL-PORT RX PORT CONTROL REG INITIALIZATION
STCTRL
.WORD
3C0H
; SERIAL-PORT TIMER-CONTROL REG INITIALIZATION
STPERIOD
.WORD
00020000H
; SERIAL-PORT TIMER PERIOD
SPRESET
.WORD
01300080H
; SERIAL-PORT RESET
RESET
.WORD
0H
; SERIAL-PORT TIMER RESET
.TEXT
START
LDP DMA
; LOAD DATA PAGE POINTER
* DMA INITIALIZATION
LDI @DMA,AR0
; POINT TO DMA GLOBAL CONTROL REGISTER
LDI @SPORT,AR1
LDI @RESET,R0
STI R0,*+AR1(4)
; RESET SPORT TIMER
LDI @RESET1,R0
STI R0,*AR0
; RESET DMA
LDI @SPRESET,R0
STI R0,*AR1
; RESET SPORT
LDI @SOURCE,R0
; INITIALIZE DMA SOURCE-ADDRESS REGISTER
STI R0,*+AR0(4)
LDI @DESTIN,R0
; INITIALIZE DMA DESTINATION-ADDRESS REGISTER
STI R0,*+AR0(6)
LDI @COUNT,R0
; INITIALIZE DMA TRANSFER COUNTER REGISTER
STI R0,*+AR0(8)
OR @IEVAL,IE
; ENABLE INTERRUPTS
OR 2000H,ST
; ENABLE CPU INTERRUPTS GLOBALLY
LDI @CONTROL,R0
; INITIALIZE DMA GLOBAL CONTROL REGISTER
STI R0,*AR0
; START DMA TRANSFER
* SERIAL PORT INITIALIZATION
LDI @SRCTRL,R0
; SERIAL-PORT RECEIVE CONTROL REG INITIALIZATION
STI R0,*+AR1(3)
LDI @STPERIOD,R0
; SERIAL-PORT TIMER-PERIOD INITIALIZATION
STI R0,*+AR1(6)
LDI @STCTRL,R0
; SERIAL-PORT TIMER CONTROL REG INITIALIZATION
STI R0,*+AR1(4)
LDI @SGCCTRL,R0
; SERIAL-PORT GLOBAL CONTROL REG INITIALIZATION
STI R0,*AR1
BU $
.END