Texas Instruments TMS320C3x User Manual

Page 455

Advertising
background image

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

Advertising