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

📄 csl_vphal.h

📁 SEED的VPM642测试程序-板级支持库
💻 H
📖 第 1 页 / 共 5 页
字号:
  #define _VP_BFBASE_PORT0    0x76000000u
  #define _VP_AFBASE_PORT1    0x78000000u
  #define _VP_BFBASE_PORT1    0x7A000000u
  #define _VP_AFBASE_PORT2    0x7C000000u
  #define _VP_BFBASE_PORT2    0x7E000000u


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

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

  #define VP_FMK(REG,FIELD,x)\
    _PER_FMK(VP,##REG,##FIELD,x)

  #define VP_FMKS(REG,FIELD,SYM)\
    _PER_FMKS(VP,##REG,##FIELD,##SYM)


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

  #define VP_ADDR(REG)\
    _VP_##REG##_ADDR

  #define VP_RGET(REG)\
    _PER_RGET(_VP_##REG##_ADDR,VP,##REG)

  #define VP_RSET(REG,x)\
    _PER_RSET(_VP_##REG##_ADDR,VP,##REG,x)

  #define VP_FGET(REG,FIELD)\
    _VP_##REG##_FGET(##FIELD)

  #define VP_FSET(REG,FIELD,x)\
    _VP_##REG##_FSET(##FIELD,##x)

  #define VP_FSETS(REG,FIELD,SYM)\
    _VP_##REG##_FSETS(##FIELD,##SYM)


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

  #define VP_RGETA(addr,REG)\
    _PER_RGET(addr,VP,##REG)

  #define VP_RSETA(addr,REG,x)\
    _PER_RSET(addr,VP,##REG,x)

  #define VP_FGETA(addr,REG,FIELD)\
    _PER_FGET(addr,VP,##REG,##FIELD)

  #define VP_FSETA(addr,REG,FIELD,x)\
    _PER_FSET(addr,VP,##REG,##FIELD,x)

  #define VP_FSETSA(addr,REG,FIELD,SYM)\
    _PER_FSETS(addr,VP,##REG,##FIELD,##SYM)


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

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

  #define VP_RGETH(h,REG)\
    VP_RGETA(VP_ADDRH(h,##REG),##REG)


  #define VP_RSETH(h,REG,x)\
    VP_RSETA(VP_ADDRH(h,##REG),##REG,x)


  #define VP_FGETH(h,REG,FIELD)\
    VP_FGETA(VP_ADDRH(h,##REG),##REG,##FIELD)


  #define VP_FSETH(h,REG,FIELD,x)\
    VP_FSETA(VP_ADDRH(h,##REG),##REG,##FIELD,x)


  #define VP_FSETSH(h,REG,FIELD,SYM)\
    VP_FSETSA(VP_ADDRH(h,##REG),##REG,##FIELD,##SYM)



/******************************************************************************\
* _____________________
* |                   |
* |  V P P I D        |
* |___________________|
*
* VPPID0 - Video Port 0 Peripheral Identification Register
* VPPID1 - Video Port 1 Peripheral Identification Register
* VPPID2 - Video Port 2 Peripheral Identification Register
*
*
* FIELDS (msb -> lsb)
* (r) TYPE
* (r) CLASS
* (r) REVISION
*
\******************************************************************************/
  #define _VP_VPPID_OFFSET            0

  #define _VP_VPPID0_ADDR                  (_VP_BASE_PORT0 + 4*_VP_VPPID_OFFSET)
  #define _VP_VPPID1_ADDR                  (_VP_BASE_PORT1 + 4*_VP_VPPID_OFFSET)
  #define _VP_VPPID2_ADDR                  (_VP_BASE_PORT2 + 4*_VP_VPPID_OFFSET)

  #define _VP_VPPID_TYPE_MASK              0x00FF0000u
  #define _VP_VPPID_TYPE_SHIFT             0x00000010u
  #define  VP_VPPID_TYPE_DEFAULT           0x00000001u /* spec. 1.4 */
  #define  VP_VPPID_TYPE_OF(x)             _VALUEOF(x)

  #define _VP_VPPID_CLASS_MASK             0x0000FF00u
  #define _VP_VPPID_CLASS_SHIFT            0x00000008u
  #define  VP_VPPID_CLASS_DEFAULT          0x00000009u /* spec. 1.4 */
  #define  VP_VPPID_CLASS_OF(x)            _VALUEOF(x)

  #define _VP_VPPID_REVISION_MASK          0x000000FFu
  #define _VP_VPPID_REVISION_SHIFT         0x00000000u
  #define  VP_VPPID_REVISION_DEFAULT       0x00000001u /* temp fix, wait for spec. ??? */
  #define  VP_VPPID_REVISION_OF(x)         _VALUEOF(x)

  #define VP_VPPID_OF(x)               _VALUEOF(x)

  #define VP_VPPID_DEFAULT (Uint32)(\
     _PER_FDEFAULT(VP,VPPID,TYPE)\
    |_PER_FDEFAULT(VP,VPPID,CLASS)\
    |_PER_FDEFAULT(VP,VPPID,REVISION)\
  )

  #define VP_VPPID_RMK(type,class,revision) (Uint32)(\
     _PER_FMK(VP,VPPID,TYPE,type)\
    |_PER_FMK(VP,VPPID,CLASS,class)\
    |_PER_FMK(VP,VPPID,REVISION,revision)\
  )

  #define _VP_VPPID_FGET(N,FIELD)\
    _PER_FGET(_VP_VPPID##N##_ADDR,VP,VPPID,##FIELD)

  #define _VP_VPPID_FSET(N,FIELD,field)\
    _PER_FSET(_VP_VPPID##N##_ADDR,VP,VPPID,##FIELD,field)

  #define _VP_VPPID_FSETS(N,FIELD,SYM)\
    _PER_FSETS(_VP_VPPID##N##_ADDR,VP,VPPID,##FIELD,##SYM)

  #define _VP_VPPID0_FGET(FIELD) _VP_VPPID_FGET(0,##FIELD)
  #define _VP_VPPID1_FGET(FIELD) _VP_VPPID_FGET(1,##FIELD)
  #define _VP_VPPID2_FGET(FIELD) _VP_VPPID_FGET(2,##FIELD)

  #define _VP_VPPID0_FSET(FIELD,f) _VP_VPPID_FSET(0,##FIELD,f)
  #define _VP_VPPID1_FSET(FIELD,f) _VP_VPPID_FSET(1,##FIELD,f)
  #define _VP_VPPID2_FSET(FIELD,f) _VP_VPPID_FSET(2,##FIELD,f)

  #define _VP_VPPID0_FSETS(FIELD,SYM) _VP_VPPID_FSETS(0,##FIELD,##SYM)
  #define _VP_VPPID1_FSETS(FIELD,SYM) _VP_VPPID_FSETS(1,##FIELD,##SYM)
  #define _VP_VPPID2_FSETS(FIELD,SYM) _VP_VPPID_FSETS(2,##FIELD,##SYM)


/******************************************************************************\
* _____________________
* |                   |
* |  P C R            |
* |___________________|
*
* PCR0  - Video Port 0 Peripheral Control Register
* PCR1  - Video Port 1 Peripheral Control Register
* PCR2  - Video Port 2 Peripheral Control Register
*
* FIELDS (msb -> lsb)
* (rw) PEREN
* (r)  SOFT
* (rw) FREE
*
\******************************************************************************/
  #define _VP_PCR_OFFSET            1

  #define _VP_PCR0_ADDR              (_VP_BASE_PORT0 + 4*_VP_PCR_OFFSET)
  #define _VP_PCR1_ADDR              (_VP_BASE_PORT1 + 4*_VP_PCR_OFFSET)
  #define _VP_PCR2_ADDR              (_VP_BASE_PORT2 + 4*_VP_PCR_OFFSET)

  #define _VP_PCR_PEREN_MASK           0x00000004u
  #define _VP_PCR_PEREN_SHIFT          0x00000002u
  #define  VP_PCR_PEREN_DEFAULT        0x00000000u
  #define  VP_PCR_PEREN_OF(x)          _VALUEOF(x)
  #define  VP_PCR_PEREN_DISABLE        0x00000000u
  #define  VP_PCR_PEREN_ENABLE         0x00000001u
  
  #define _VP_PCR_SOFT_MASK           0x00000002u
  #define _VP_PCR_SOFT_SHIFT          0x00000001u
  #define  VP_PCR_SOFT_DEFAULT        0x00000000u
  #define  VP_PCR_SOFT_OF(x)          _VALUEOF(x)
  #define  VP_PCR_SOFT_STOP           0x00000000u
  #define  VP_PCR_SOFT_COMP           0x00000001u
  
  #define _VP_PCR_FREE_MASK           0x00000001u
  #define _VP_PCR_FREE_SHIFT          0x00000000u
  #define  VP_PCR_FREE_DEFAULT        0x00000001u
  #define  VP_PCR_FREE_OF(x)          _VALUEOF(x)
  #define  VP_PCR_FREE_SOFT           0x00000000u
  
  #define  VP_PCR_OF(x)             _VALUEOF(x)

  #define VP_PCR_DEFAULT (Uint32)(\
    _PER_FDEFAULT(VP,PCR,PEREN)\
   |_PER_FDEFAULT(VP,PCR,SOFT)\
   |_PER_FDEFAULT(VP,PCR,FREE)\
  )

#define VP_PCR_RMK(peren,free) (Uint32)(\
    _PER_FMK(VP,PCR,PEREN,peren)\
   |_PER_FMK(VP,PCR,FREE,free)\
  )

  #define _VP_PCR_FGET(N,FIELD)\
    _PER_FGET(_VP_PCR##N##_ADDR,VP,PCR,##FIELD)

  #define _VP_PCR_FSET(N,FIELD,field)\
    _PER_FSET(_VP_PCR##N##_ADDR,VP,PCR,##FIELD,field)

  #define _VP_PCR_FSETS(N,FIELD,SYM)\
    _PER_FSETS(_VP_PCR##N##_ADDR,VP,PCR,##FIELD,##SYM)

  #define _VP_PCR0_FGET(FIELD) _VP_PCR_FGET(0,##FIELD)
  #define _VP_PCR1_FGET(FIELD) _VP_PCR_FGET(1,##FIELD)
  #define _VP_PCR2_FGET(FIELD) _VP_PCR_FGET(2,##FIELD)

  #define _VP_PCR0_FSET(FIELD,f) _VP_PCR_FSET(0,##FIELD,f)
  #define _VP_PCR1_FSET(FIELD,f) _VP_PCR_FSET(1,##FIELD,f)
  #define _VP_PCR2_FSET(FIELD,f) _VP_PCR_FSET(2,##FIELD,f)

  #define _VP_PCR0_FSETS(FIELD,SYM) _VP_PCR_FSETS(0,##FIELD,##SYM)
  #define _VP_PCR1_FSETS(FIELD,SYM) _VP_PCR_FSETS(1,##FIELD,##SYM)
  #define _VP_PCR2_FSETS(FIELD,SYM) _VP_PCR_FSETS(2,##FIELD,##SYM)
  
/******************************************************************************\
* _____________________
* |                   |
* |  P F U N C        |
* |___________________|
*
* PFUNC0  - Video Port 0 Pin Function Register
* PFUNC1  - Video Port 1 Pin Function Register
* PFUNC2  - Video Port 2 Pin Function Register
*
* FIELDS (msb -> lsb)
* (rw) PFUNC22
* (rw) PFUNC21
* (rw) PFUNC20
* (rw) PFUNC10
* (rw) PFUNC0
*
\******************************************************************************/
  #define _VP_PFUNC_OFFSET            8

  #define _VP_PFUNC0_ADDR              (_VP_BASE_PORT0 + 4*_VP_PFUNC_OFFSET)
  #define _VP_PFUNC1_ADDR              (_VP_BASE_PORT1 + 4*_VP_PFUNC_OFFSET)
  #define _VP_PFUNC2_ADDR              (_VP_BASE_PORT2 + 4*_VP_PFUNC_OFFSET)

  #define _VP_PFUNC_PFUNC22_MASK           0x00400000u
  #define _VP_PFUNC_PFUNC22_SHIFT          0x00000016u
  #define  VP_PFUNC_PFUNC22_DEFAULT        0x00000000u
  #define  VP_PFUNC_PFUNC22_OF(x)          _VALUEOF(x)
  #define  VP_PFUNC_PFUNC22_NORMAL         0x00000000u
  #define  VP_PFUNC_PFUNC22_VCTL3      0x00000001u
  
  #define _VP_PFUNC_PFUNC21_MASK           0x00200000u
  #define _VP_PFUNC_PFUNC21_SHIFT          0x00000015u
  #define  VP_PFUNC_PFUNC21_DEFAULT        0x00000000u
  #define  VP_PFUNC_PFUNC21_OF(x)          _VALUEOF(x)
  #define  VP_PFUNC_PFUNC21_NORMAL         0x00000000u
  #define  VP_PFUNC_PFUNC21_VCTL2      0x00000001u
  
  #define _VP_PFUNC_PFUNC20_MASK           0x00100000u
  #define _VP_PFUNC_PFUNC20_SHIFT          0x00000014u
  #define  VP_PFUNC_PFUNC20_DEFAULT        0x00000000u
  #define  VP_PFUNC_PFUNC20_OF(x)          _VALUEOF(x)
  #define  VP_PFUNC_PFUNC20_NORMAL         0x00000000u
  #define  VP_PFUNC_PFUNC20_VCTL1      0x00000001u
  
  #define _VP_PFUNC_PFUNC10_MASK           0x00000400u
  #define _VP_PFUNC_PFUNC10_SHIFT          0x0000000Au
  #define  VP_PFUNC_PFUNC10_DEFAULT        0x00000000u
  #define  VP_PFUNC_PFUNC10_OF(x)          _VALUEOF(x)
  #define  VP_PFUNC_PFUNC10_NORMAL         0x00000000u
  #define  VP_PFUNC_PFUNC10_VDATA10TO19    0x00000001u
  
  #define _VP_PFUNC_PFUNC0_MASK            0x00000001u
  #define _VP_PFUNC_PFUNC0_SHIFT           0x00000000u
  #define  VP_PFUNC_PFUNC0_DEFAULT         0x00000000u
  #define  VP_PFUNC_PFUNC0_OF(x)           _VALUEOF(x)
  #define  VP_PFUNC_PFUNC0_NORMAL          0x00000000u
  #define  VP_PFUNC_PFUNC0_VDATA0TO9       0x00000001u
  

⌨️ 快捷键说明

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