⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csl_dmahal.h

📁 DSP图象处理的基础入门程序,对于复杂的DSP操作系统.能够让你得到一些启示
💻 H
📖 第 1 页 / 共 3 页
字号:
/******************************************************************************\
*           Copyright (C) 1999-2000 Texas Instruments Incorporated.
*                           All Rights Reserved
*------------------------------------------------------------------------------
* FILENAME...... csl_dmahal.h
* DATE CREATED.. 03/12/1999 
* LAST MODIFIED. 02/05/2002 added 6204/6205 to DMA_COND1
*------------------------------------------------------------------------------
* REGISTERS
*
* AUXCTL   - auxiliary control register 
* PRICTL0  - channel primary control register 0
* PRICTL1  - channel primary control register 1
* PRICTL2  - channel primary control register 2
* PRICTL3  - channel primary control register 3
* SECCTL0  - channel seccondary control register 0
* SECCTL1  - channel seccondary control register 1
* SECCTL2  - channel seccondary control register 2
* SECCTL3  - channel seccondary control register 3
* SRC0     - channel src address register 0
* SRC1     - channel src address register 1
* SRC2     - channel src address register 2
* SRC3     - channel src address register 3
* DST0     - channel destination address register 0
* DST1     - channel destination address register 1
* DST2     - channel destination address register 2
* DST3     - channel destination address register 3
* XFRCNT0  - channel transfer count register 0
* XFRCNT1  - channel transfer count register 1
* XFRCNT2  - channel transfer count register 2
* XFRCNT3  - channel transfer count register 3
* GBLCNTA  - global count reload register A
* GBLCNTB  - global count reload register B
* GBLIDXA  - global index register A
* GBLIDXB  - global index register B
* GBLADDRA - global address reload register A
* GBLADDRB - global address reload register B
* GBLADDRC - global address reload register C
* GBLADDRD - global address reload register D
*
\******************************************************************************/
#ifndef _CSL_DMAHAL_H_
#define _CSL_DMAHAL_H_

#include <csl_stdinc.h>
#include <csl_chip.h>

#if (DMA_SUPPORT)
/******************************************************************************\
* MISC section
\******************************************************************************/

  #define _DMA_COND1   (CHIP_6202|CHIP_6203|CHIP_6204|CHIP_6205)

  #define _DMA_BASE_CHA0    0x01840000u
  #define _DMA_BASE_CHA1    0x01840040u
  #define _DMA_BASE_CHA2    0x01840004u
  #define _DMA_BASE_CHA3    0x01840044u


/******************************************************************************\
* module level register/field access macros
\******************************************************************************/

  /* ----------------- */
  /* FIELD MAKE MACROS */
  /* ----------------- */

  #define DMA_FMK(REG,FIELD,x)\
    _PER_FMK(DMA,##REG,##FIELD,x)

  #define DMA_FMKS(REG,FIELD,SYM)\
    _PER_FMKS(DMA,##REG,##FIELD,##SYM)


  /* -------------------------------- */
  /* RAW REGISTER/FIELD ACCESS MACROS */
  /* -------------------------------- */

  #define DMA_ADDR(REG)\
    _DMA_##REG##_ADDR

  #define DMA_RGET(REG)\
    _PER_RGET(_DMA_##REG##_ADDR,DMA,##REG)

  #define DMA_RSET(REG,x)\
    _PER_RSET(_DMA_##REG##_ADDR,DMA,##REG,x)

  #define DMA_FGET(REG,FIELD)\
    _DMA_##REG##_FGET(##FIELD)

  #define DMA_FSET(REG,FIELD,x)\
    _DMA_##REG##_FSET(##FIELD,##x)

  #define DMA_FSETS(REG,FIELD,SYM)\
    _DMA_##REG##_FSETS(##FIELD,##SYM)


  /* ------------------------------------------ */
  /* ADDRESS BASED REGISTER/FIELD ACCESS MACROS */
  /* ------------------------------------------ */

  #define DMA_RGETA(addr,REG)\
    _PER_RGET(addr,DMA,##REG)

  #define DMA_RSETA(addr,REG,x)\
    _PER_RSET(addr,DMA,##REG,x)

  #define DMA_FGETA(addr,REG,FIELD)\
    _PER_FGET(addr,DMA,##REG,##FIELD)

  #define DMA_FSETA(addr,REG,FIELD,x)\
    _PER_FSET(addr,DMA,##REG,##FIELD,x)

  #define DMA_FSETSA(addr,REG,FIELD,SYM)\
    _PER_FSETS(addr,DMA,##REG,##FIELD,##SYM)


  /* ----------------------------------------- */
  /* HANDLE BASED REGISTER/FIELD ACCESS MACROS */
  /* ----------------------------------------- */

  #define DMA_ADDRH(h,REG)\
    (Uint32)(&((h)->baseAddr[_DMA_##REG##_OFFSET]))

  #define DMA_RGETH(h,REG)\
    DMA_RGETA(DMA_ADDRH(h,##REG),##REG)


  #define DMA_RSETH(h,REG,x)\
    DMA_RSETA(DMA_ADDRH(h,##REG),##REG,x)


  #define DMA_FGETH(h,REG,FIELD)\
    DMA_FGETA(DMA_ADDRH(h,##REG),##REG,##FIELD)


  #define DMA_FSETH(h,REG,FIELD,x)\
    DMA_FSETA(DMA_ADDRH(h,##REG),##REG,##FIELD,x)


  #define DMA_FSETSH(h,REG,FIELD,SYM)\
    DMA_FSETSA(DMA_ADDRH(h,##REG),##REG,##FIELD,##SYM)



/******************************************************************************\
* _____________________
* |                   |
* |  A U X C T L      |
* |___________________|
*
* AUXCTL   - auxiliary control register
*
* FIELDS (msb -> lsb)
* (rw) AUXPRI
* (rw) CHPRI
*
\******************************************************************************/
  #define _DMA_AUXCTL_ADDR              0x01840070u

  #define _DMA_AUXCTL_AUXPRI_MASK       0x00000010u
  #define _DMA_AUXCTL_AUXPRI_SHIFT      0x00000004u
  #define  DMA_AUXCTL_AUXPRI_DEFAULT    0x00000000u
  #define  DMA_AUXCTL_AUXPRI_OF(x)      _VALUEOF(x)
  #define  DMA_AUXCTL_AUXPRI_CPU        0x00000000u
  #define  DMA_AUXCTL_AUXPRI_DMA        0x00000001u

  #define _DMA_AUXCTL_CHPRI_MASK        0x0000000Fu
  #define _DMA_AUXCTL_CHPRI_SHIFT       0x00000000u
  #define  DMA_AUXCTL_CHPRI_DEFAULT     0x00000000u
  #define  DMA_AUXCTL_CHPRI_OF(x)       _VALUEOF(x)
  #define  DMA_AUXCTL_CHPRI_HIGHEST     0x00000000u
  #define  DMA_AUXCTL_CHPRI_2ND         0x00000001u
  #define  DMA_AUXCTL_CHPRI_3RD         0x00000002u
  #define  DMA_AUXCTL_CHPRI_4TH         0x00000003u
  #define  DMA_AUXCTL_CHPRI_LOWEST      0x00000004u

  #define  DMA_AUXCTL_OF(x)             _VALUEOF(x)

  #define DMA_AUXCTL_DEFAULT (Uint32)( \
     _PER_FDEFAULT(DMA,AUXCTL,AUXPRI) \
    |_PER_FDEFAULT(DMA,AUXCTL,CHPRI) \
  )

  #define DMA_AUXCTL_RMK(auxpri,chpri) (Uint32)( \
     _PER_FMK(DMA,AUXCTL,AUXPRI,auxpri) \
    |_PER_FMK(DMA,AUXCTL,CHPRI,chpri) \
  )

  #define _DMA_AUXCTL_FGET(FIELD)\
    _PER_FGET(_DMA_AUXCTL_ADDR,DMA,AUXCTL,##FIELD)

  #define _DMA_AUXCTL_FSET(FIELD,field)\
    _PER_FSET(_DMA_AUXCTL_ADDR,DMA,AUXCTL,##FIELD,field)

  #define _DMA_AUXCTL_FSETS(FIELD,SYM)\
    _PER_FSETS(_DMA_AUXCTL_ADDR,DMA,AUXCTL,##FIELD,##SYM)


/******************************************************************************\
* _____________________
* |                   |
* |  P R I C T L      |
* |___________________|
*
* PRICTL0  - channel primary control register 0
* PRICTL1  - channel primary control register 1
* PRICTL2  - channel primary control register 2
* PRICTL3  - channel primary control register 3
*
* FIELDS (msb -> lsb)
* (rw) DSTRLD
* (rw) SRCRLD
* (rw) EMOD
* (rw) FS
* (rw) TCINT
* (rw) PRI
* (rw) WSYNC
* (rw) RSYNC
* (rw) INDEX
* (rw) CNTRLD
* (rw) SPLIT
* (rw) ESIZE
* (rw) DSTDIR
* (rw) SRCDIR
* (r)  STATUS
* (rw) START
*
\******************************************************************************/
  #define _DMA_PRICTL_OFFSET            0

  #define _DMA_PRICTL0_ADDR             0x01840000u
  #define _DMA_PRICTL1_ADDR             0x01840040u
  #define _DMA_PRICTL2_ADDR             0x01840004u
  #define _DMA_PRICTL3_ADDR             0x01840044u

  #define _DMA_PRICTL_DSTRLD_MASK       0xC0000000u
  #define _DMA_PRICTL_DSTRLD_SHIFT      0x0000001Eu
  #define  DMA_PRICTL_DSTRLD_DEFAULT    0x00000000u
  #define  DMA_PRICTL_DSTRLD_OF(x)      _VALUEOF(x)
  #define  DMA_PRICTL_DSTRLD_NONE       0x00000000u
  #define  DMA_PRICTL_DSTRLD_B          0x00000001u
  #define  DMA_PRICTL_DSTRLD_C          0x00000002u
  #define  DMA_PRICTL_DSTRLD_D          0x00000003u

  #define _DMA_PRICTL_SRCRLD_MASK       0x30000000u
  #define _DMA_PRICTL_SRCRLD_SHIFT      0x0000001Cu
  #define  DMA_PRICTL_SRCRLD_DEFAULT    0x00000000u
  #define  DMA_PRICTL_SRCRLD_OF(x)      _VALUEOF(x)
  #define  DMA_PRICTL_SRCRLD_NONE       0x00000000u
  #define  DMA_PRICTL_SRCRLD_B          0x00000001u
  #define  DMA_PRICTL_SRCRLD_C          0x00000002u
  #define  DMA_PRICTL_SRCRLD_D          0x00000003u

  #define _DMA_PRICTL_EMOD_MASK         0x08000000u
  #define _DMA_PRICTL_EMOD_SHIFT        0x0000001Bu
  #define  DMA_PRICTL_EMOD_DEFAULT      0x00000000u
  #define  DMA_PRICTL_EMOD_OF(x)        _VALUEOF(x)
  #define  DMA_PRICTL_EMOD_NOHALT       0x00000000u
  #define  DMA_PRICTL_EMOD_HALT         0x00000001u

  #define _DMA_PRICTL_FS_MASK           0x04000000u
  #define _DMA_PRICTL_FS_SHIFT          0x0000001Au
  #define  DMA_PRICTL_FS_DEFAULT        0x00000000u
  #define  DMA_PRICTL_FS_OF(x)          _VALUEOF(x)
  #define  DMA_PRICTL_FS_DISABLE        0x00000000u
  #define  DMA_PRICTL_FS_RSYNC          0x00000001u

  #define _DMA_PRICTL_TCINT_MASK        0x02000000u
  #define _DMA_PRICTL_TCINT_SHIFT       0x00000019u
  #define  DMA_PRICTL_TCINT_DEFAULT     0x00000000u
  #define  DMA_PRICTL_TCINT_OF(x)       _VALUEOF(x)
  #define  DMA_PRICTL_TCINT_DISABLE     0x00000000u
  #define  DMA_PRICTL_TCINT_ENABLE      0x00000001u

  #define _DMA_PRICTL_PRI_MASK          0x01000000u
  #define _DMA_PRICTL_PRI_SHIFT         0x00000018u
  #define  DMA_PRICTL_PRI_DEFAULT       0x00000000u
  #define  DMA_PRICTL_PRI_OF(x)         _VALUEOF(x)
  #define  DMA_PRICTL_PRI_CPU           0x00000000u
  #define  DMA_PRICTL_PRI_DMA           0x00000001u

  #define _DMA_PRICTL_WSYNC_MASK        0x00F80000u
  #define _DMA_PRICTL_WSYNC_SHIFT       0x00000013u
  #define  DMA_PRICTL_WSYNC_DEFAULT     0x00000000u
  #define  DMA_PRICTL_WSYNC_OF(x)       _VALUEOF(x)
  #define  DMA_PRICTL_WSYNC_NONE        0x00000000u
  #define  DMA_PRICTL_WSYNC_TINT0       0x00000001u
  #define  DMA_PRICTL_WSYNC_TINT1       0x00000002u
  #define  DMA_PRICTL_WSYNC_SDINT       0x00000003u
  #define  DMA_PRICTL_WSYNC_EXTINT4     0x00000004u
  #define  DMA_PRICTL_WSYNC_EXTINT5     0x00000005u
  #define  DMA_PRICTL_WSYNC_EXTINT6     0x00000006u
  #define  DMA_PRICTL_WSYNC_EXTINT7     0x00000007u
  #define  DMA_PRICTL_WSYNC_DMAINT0     0x00000008u
  #define  DMA_PRICTL_WSYNC_DMAINT1     0x00000009u
  #define  DMA_PRICTL_WSYNC_DMAINT2     0x0000000Au
  #define  DMA_PRICTL_WSYNC_DMAINT3     0x0000000Bu
  #define  DMA_PRICTL_WSYNC_XEVT0       0x0000000Cu
  #define  DMA_PRICTL_WSYNC_REVT0       0x0000000Du
  #define  DMA_PRICTL_WSYNC_XEVT1       0x0000000Eu
  #define  DMA_PRICTL_WSYNC_REVT1       0x0000000Fu
  #define  DMA_PRICTL_WSYNC_DSPINT      0x00000010u
  #define  DMA_PRICTL_WSYNC_XEVT2       0x00000011u
  #define  DMA_PRICTL_WSYNC_REVT2       0x00000012u

  #define _DMA_PRICTL_RSYNC_MASK        0x0007C000u
  #define _DMA_PRICTL_RSYNC_SHIFT       0x0000000Eu
  #define  DMA_PRICTL_RSYNC_DEFAULT     0x00000000u
  #define  DMA_PRICTL_RSYNC_OF(x)       _VALUEOF(x)
  #define  DMA_PRICTL_RSYNC_NONE        0x00000000u
  #define  DMA_PRICTL_RSYNC_TINT0       0x00000001u
  #define  DMA_PRICTL_RSYNC_TINT1       0x00000002u
  #define  DMA_PRICTL_RSYNC_SDINT       0x00000003u
  #define  DMA_PRICTL_RSYNC_EXTINT4     0x00000004u
  #define  DMA_PRICTL_RSYNC_EXTINT5     0x00000005u
  #define  DMA_PRICTL_RSYNC_EXTINT6     0x00000006u
  #define  DMA_PRICTL_RSYNC_EXTINT7     0x00000007u
  #define  DMA_PRICTL_RSYNC_DMAINT0     0x00000008u
  #define  DMA_PRICTL_RSYNC_DMAINT1     0x00000009u
  #define  DMA_PRICTL_RSYNC_DMAINT2     0x0000000Au
  #define  DMA_PRICTL_RSYNC_DMAINT3     0x0000000Bu
  #define  DMA_PRICTL_RSYNC_XEVT0       0x0000000Cu
  #define  DMA_PRICTL_RSYNC_REVT0       0x0000000Du
  #define  DMA_PRICTL_RSYNC_XEVT1       0x0000000Eu
  #define  DMA_PRICTL_RSYNC_REVT1       0x0000000Fu
  #define  DMA_PRICTL_RSYNC_DSPINT      0x00000010u
  #define  DMA_PRICTL_RSYNC_XEVT2       0x00000011u
  #define  DMA_PRICTL_RSYNC_REVT2       0x00000012u

  #define _DMA_PRICTL_INDEX_MASK        0x00002000u
  #define _DMA_PRICTL_INDEX_SHIFT       0x0000000Du
  #define  DMA_PRICTL_INDEX_DEFAULT     0x00000000u
  #define  DMA_PRICTL_INDEX_OF(x)       _VALUEOF(x)
  #define  DMA_PRICTL_INDEX_NA          0x00000000u
  #define  DMA_PRICTL_INDEX_A           0x00000000u
  #define  DMA_PRICTL_INDEX_B           0x00000001u

  #define _DMA_PRICTL_CNTRLD_MASK       0x00001000u
  #define _DMA_PRICTL_CNTRLD_SHIFT      0x0000000Cu
  #define  DMA_PRICTL_CNTRLD_DEFAULT    0x00000000u
  #define  DMA_PRICTL_CNTRLD_OF(x)      _VALUEOF(x)
  #define  DMA_PRICTL_CNTRLD_NA         0x00000000u
  #define  DMA_PRICTL_CNTRLD_A          0x00000000u
  #define  DMA_PRICTL_CNTRLD_B          0x00000001u

  #define _DMA_PRICTL_SPLIT_MASK        0x00000C00u
  #define _DMA_PRICTL_SPLIT_SHIFT       0x0000000Au
  #define  DMA_PRICTL_SPLIT_DEFAULT     0x00000000u
  #define  DMA_PRICTL_SPLIT_OF(x)       _VALUEOF(x)
  #define  DMA_PRICTL_SPLIT_DISABLE     0x00000000u
  #define  DMA_PRICTL_SPLIT_A           0x00000001u
  #define  DMA_PRICTL_SPLIT_B           0x00000002u
  #define  DMA_PRICTL_SPLIT_C           0x00000003u

  #define _DMA_PRICTL_ESIZE_MASK        0x00000300u
  #define _DMA_PRICTL_ESIZE_SHIFT       0x00000008u
  #define  DMA_PRICTL_ESIZE_DEFAULT     0x00000000u
  #define  DMA_PRICTL_ESIZE_OF(x)       _VALUEOF(x)
  #define  DMA_PRICTL_ESIZE_32BIT       0x00000000u
  #define  DMA_PRICTL_ESIZE_16BIT       0x00000001u
  #define  DMA_PRICTL_ESIZE_8BIT        0x00000002u

  #define _DMA_PRICTL_DSTDIR_MASK       0x000000C0u
  #define _DMA_PRICTL_DSTDIR_SHIFT      0x00000006u
  #define  DMA_PRICTL_DSTDIR_DEFAULT    0x00000000u
  #define  DMA_PRICTL_DSTDIR_OF(x)      _VALUEOF(x)
  #define  DMA_PRICTL_DSTDIR_NONE       0x00000000u
  #define  DMA_PRICTL_DSTDIR_INC        0x00000001u
  #define  DMA_PRICTL_DSTDIR_DEC        0x00000002u
  #define  DMA_PRICTL_DSTDIR_IDX        0x00000003u

  #define _DMA_PRICTL_SRCDIR_MASK       0x00000030u
  #define _DMA_PRICTL_SRCDIR_SHIFT      0x00000004u
  #define  DMA_PRICTL_SRCDIR_DEFAULT    0x00000000u
  #define  DMA_PRICTL_SRCDIR_OF(x)      _VALUEOF(x)
  #define  DMA_PRICTL_SRCDIR_NONE       0x00000000u
  #define  DMA_PRICTL_SRCDIR_INC        0x00000001u
  #define  DMA_PRICTL_SRCDIR_DEC        0x00000002u
  #define  DMA_PRICTL_SRCDIR_IDX        0x00000003u

  #define _DMA_PRICTL_STATUS_MASK       0x0000000Cu
  #define _DMA_PRICTL_STATUS_SHIFT      0x00000002u
  #define  DMA_PRICTL_STATUS_DEFAULT    0x00000000u
  #define  DMA_PRICTL_STATUS_OF(x)      _VALUEOF(x)
  #define  DMA_PRICTL_STATUS_STOPPED    0x00000000u
  #define  DMA_PRICTL_STATUS_RUNNING    0x00000001u
  #define  DMA_PRICTL_STATUS_PAUSED     0x00000002u
  #define  DMA_PRICTL_STATUS_AUTORUNNING 0x00000003u

  #define _DMA_PRICTL_START_MASK        0x00000003u
  #define _DMA_PRICTL_START_SHIFT       0x00000000u
  #define  DMA_PRICTL_START_DEFAULT     0x00000000u
  #define  DMA_PRICTL_START_OF(x)       _VALUEOF(x)
  #define  DMA_PRICTL_START_STOP        0x00000000u
  #define  DMA_PRICTL_START_NORMAL      0x00000001u
  #define  DMA_PRICTL_START_PAUSE       0x00000002u
  #define  DMA_PRICTL_START_AUTOINIT    0x00000003u

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -