Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

                ifndef  stddef4xinc     ; avoid multiple inclusion
stddef4xinc     equ     1

                save
                listing off             ; no listing over this file

;****************************************************************************
;*                                                                          *
;*   AS - File STDDEF4X.INC                                                 *
;*                                                                          *
;*   Contains Register and Address Definitions for TMS320C4x CPUs           *
;*                                                                          *
;****************************************************************************

                if      (MOMCPUNAME<>"320C40")&&(MOMCPUNAME<>"320C44")
                 fatal  "wrong processor type set: use only 320C40/320C44"
                endif

                if      MOMPASS=1
                 message "TMS320C4x Definitions (C) 2016 Alfred Arnold"
                endif

;------------------------------------------------------------------------------
; Memory Control

GMICR           equ     00100000h       ; Global Memory Interface Control Register
LMICR           equ     00100004h       ; Local Memory Interface Control Register

;------------------------------------------------------------------------------
; Timer

__deftimer      macro   num,base
__CHAN  set     num
__CHANS set     "\{__CHAN}"
T{__CHANS}CTRL          equ     base+0h ; Control Register
T{__CHANS}CNT           equ     base+4h ; Counter Register
T{__CHANS}PERIOD        equ     base+8h ; Period Register
                endm

                __deftimer 0,00100020h
                __deftimer 1,00100030h

;------------------------------------------------------------------------------
; Communication Ports

__defcomm       macro   num,base
__CHAN  set     num
__CHANS set     "\{__CHAN}"
CPCR{__CHANS}            equ    base+0       ; Control Register
IFIFO{__CHANS}POS0       equ    base+1       ; Input FIFO Position 0
OFIFO{__CHANS}POS7       equ    base+2       ; Output FIFO Position 7
P{__CHANS}RESET          equ    base+3       ; Software Reset  
                endm

                if      MOMCPUNAME="320C40"
                 __defcomm 0,00100040h
                 __defcomm 3,00100070h
                endif

                __defcomm 1,00100050h
                __defcomm 2,00100060h
                __defcomm 4,00100080h
                __defcomm 5,00100090h

;------------------------------------------------------------------------------
; Channel Registers

__defdma        macro   num,base
__CHAN  set     num
__CHANS set     "\{__CHAN}"
DMA{__CHANS}CTRL        equ     base+0  ; Control Register
DMA{__CHANS}SRCADDR     equ     base+1  ; Source Address
DMA{__CHANS}SRCIDX      equ     base+2  ; Source Address Index
DMA{__CHANS}TCNT        equ     base+3  ; Transfer Counter
DMA{__CHANS}DSTADDR     equ     base+4  ; Destination Address
DMA{__CHANS}DSTIDX      equ     base+5  ; Destination Address Index
DMA{__CHANS}LINKPTR     equ     base+6  ; Link Pointer
DMA{__CHANS}AUXTCNT     equ     base+7  ; Auxiliary Transfer Counter
DMA{__CHANS}AUXLINKPTR  equ     base+8  ; Auxiliary Link Pointer
                endm

                __defdma        0,001000a0h
                __defdma        1,001000b0h
                __defdma        2,001000c0h
                __defdma        3,001000d0h
                __defdma        4,001000e0h
                __defdma        5,001000f0h

;------------------------------------------------------------------------------
; Interrupt Vector Addresses

INTVEC_RESET    equ     0
INTVEC_NMI      equ     1
INTVEC_TINT0    equ     2
__TMPINTVEC     set     0
                rept    4
INTVEC_IIOF{"\{__TMPINTVEC}"} equ __TMPINTVEC+3
__TMPINTVEC     set     __TMPINTVEC+1
                endm
__TMPINTVEC     set     0
                rept    6
INTVEC_ICFULL{"\{__TMPINTVEC}"}         equ     __TMPINTVEC*4+0dh
INTVEC_ICRDY{"\{__TMPINTVEC}"}          equ     __TMPINTVEC*4+0eh
INTVEC_OCRDY{"\{__TMPINTVEC}"}          equ     __TMPINTVEC*4+0fh
INTVEC_OCEMPTY{"\{__TMPINTVEC}"}        equ     __TMPINTVEC*4+10h
__TMPINTVEC     set     __TMPINTVEC+1
                endm
__TMPINTVEC     set     0
                rept    6
INTVEC_DMATINT{"\{__TMPINTVEC}"}        equ     __TMPINTVEC+25h
__TMPINTVEC     set     __TMPINTVEC+1
                endm
INTVEC_TINT1    equ     02bh

;------------------------------------------------------------------------------

                restore                 ; allow listing again

                endif                   ; stddef4xinc