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

📄 csl_hpihal.h

📁 SEED的VPM642测试程序-板级支持库
💻 H
字号:
/******************************************************************************\
*           Copyright (C) 1999-2001 Texas Instruments Incorporated.
*                           All Rights Reserved
*------------------------------------------------------------------------------
* FILENAME...... csl_hpihal.h
* DATE CREATED.. 06/20/1999
* LAST MODIFIED. 04/20/2001 (C64x compatibility)
*				 06/09/2003 TRCTL bug
*------------------------------------------------------------------------------
* REGISTERS
*
* HPIC - HPI control register
* HPIAW - HPI Address Write register (1)
* HPIAR - HPI Address Read registrer (1)
* TRCTL - TR Control register (1)
*
* (1) supported by C64x devices only
\******************************************************************************/
#ifndef _CSL_HPIHAL_H_
#define _CSL_HPIHAL_H_

#include <csl_chip.h>

#if (HPI_SUPPORT)
/******************************************************************************\
* MISC section
\******************************************************************************/
#define _HPI_BASE_ADDR         0x01880000u


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

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

  #define HPI_FMK(REG,FIELD,x)\
    _PER_FMK(HPI,##REG,##FIELD,x)

  #define HPI_FMKS(REG,FIELD,SYM)\
    _PER_FMKS(HPI,##REG,##FIELD,##SYM)


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

  #define HPI_ADDR(REG)\
    _HPI_##REG##_ADDR

  #define HPI_RGET(REG)\
    _PER_RGET(_HPI_##REG##_ADDR,HPI,##REG)

  #define HPI_RSET(REG,x)\
    _PER_RSET(_HPI_##REG##_ADDR,HPI,##REG,x)

  #define HPI_FGET(REG,FIELD)\
    _HPI_##REG##_FGET(##FIELD)

  #define HPI_FSET(REG,FIELD,x)\
    _HPI_##REG##_FSET(##FIELD,##x)

  #define HPI_FSETS(REG,FIELD,SYM)\
    _HPI_##REG##_FSETS(##FIELD,##SYM)


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

  #define HPI_RGETA(addr,REG)\
    _PER_RGET(addr,HPI,##REG)

  #define HPI_RSETA(addr,REG,x)\
    _PER_RSET(addr,HPI,##REG,x)

  #define HPI_FGETA(addr,REG,FIELD)\
    _PER_FGET(addr,HPI,##REG,##FIELD)

  #define HPI_FSETA(addr,REG,FIELD,x)\
    _PER_FSET(addr,HPI,##REG,##FIELD,x)

  #define HPI_FSETSA(addr,REG,FIELD,SYM)\
    _PER_FSETS(addr,HPI,##REG,##FIELD,##SYM)



/******************************************************************************\
* _____________________
* |                   |
* |  H P I C          |
* |___________________|
*
* HPI - HPI control register
*
* FIELDS (msb -> lsb)
* (r)  FETCH
* (r)  HRDY
* (rw) HINT
* (rw) DSPINT
* (r)  HWOB
*
\******************************************************************************/
  #define _HPI_HPIC_OFFSET             0
  #define _HPI_HPIC_ADDR               0x01880000u

  #define _HPI_HPIC_FETCH_MASK         0x00000010u
  #define _HPI_HPIC_FETCH_SHIFT        0x00000004u
  #define  HPI_HPIC_FETCH_DEFAULT      0x00000000u
  #define  HPI_HPIC_FETCH_OF(x)        _VALUEOF(x)
  #define  HPI_HPIC_FETCH_0            0x00000000u
  #define  HPI_HPIC_FETCH_1            0x00000001u

  #define _HPI_HPIC_HRDY_MASK          0x00000008u
  #define _HPI_HPIC_HRDY_SHIFT         0x00000003u
  #define  HPI_HPIC_HRDY_DEFAULT       0x00000001u
  #define  HPI_HPIC_HRDY_OF(x)         _VALUEOF(x)
  #define  HPI_HPIC_HRDY_0             0x00000000u
  #define  HPI_HPIC_HRDY_1             0x00000001u

  #define _HPI_HPIC_HINT_MASK          0x00000004u
  #define _HPI_HPIC_HINT_SHIFT         0x00000002u
  #define  HPI_HPIC_HINT_DEFAULT       0x00000000u
  #define  HPI_HPIC_HINT_OF(x)         _VALUEOF(x)
  #define  HPI_HPIC_HINT_0             0x00000000u
  #define  HPI_HPIC_HINT_1             0x00000001u

  #define _HPI_HPIC_DSPINT_MASK        0x00000002u
  #define _HPI_HPIC_DSPINT_SHIFT       0x00000001u
  #define  HPI_HPIC_DSPINT_DEFAULT     0x00000000u
  #define  HPI_HPIC_DSPINT_OF(x)       _VALUEOF(x)
  #define  HPI_HPIC_DSPINT_0           0x00000000u
  #define  HPI_HPIC_DSPINT_1           0x00000001u

  #define _HPI_HPIC_HWOB_MASK          0x00000001u
  #define _HPI_HPIC_HWOB_SHIFT         0x00000000u
  #define  HPI_HPIC_HWOB_DEFAULT       0x00000000u
  #define  HPI_HPIC_HWOB_OF(x)         _VALUEOF(x)
  #define  HPI_HPIC_HWOB_0             0x00000000u
  #define  HPI_HPIC_HWOB_1             0x00000001u

  #define  HPI_HPIC_OF(x)              _VALUEOF(x)

  #define HPI_HPIC_DEFAULT (Uint32)( \
     _PER_FDEFAULT(HPI,HPIC,FETCH) \
    |_PER_FDEFAULT(HPI,HPIC,HRDY) \
    |_PER_FDEFAULT(HPI,HPIC,HINT) \
    |_PER_FDEFAULT(HPI,HPIC,DSPINT) \
    |_PER_FDEFAULT(HPI,HPIC,HWOB) \
  )

  #define HPI_HPIC_RMK(hint,dspint) (Uint32)( \
     _PER_FMK(HPI,HPIC,HINT,hint) \
    |_PER_FMK(HPI,HPIC,DSPINT,dspint) \
   )

  #define _HPI_HPIC_FGET(FIELD)\
    _PER_FGET(_HPI_HPIC_ADDR,HPI,HPIC,##FIELD)

  #define _HPI_HPIC_FSET(FIELD,field)\
    _PER_FSET(_HPI_HPIC_ADDR,HPI,HPIC,##FIELD,field)

  #define _HPI_HPIC_FSETS(FIELD,SYM)\
    _PER_FSETS(_HPI_HPIC_ADDR,HPI,HPIC,##FIELD,##SYM)
/******************************************************************************\
* _____________________
* |                   |
* |  H P I A W        |
* |___________________|
*
* HPIAW - HPI Address Write register
*
* FIELDS (msb -> lsb)
* (rw)  HPIAW
*
\******************************************************************************/
 #if (C64_SUPPORT)
  #define _HPI_HPIAW_OFFSET             1
  #define _HPI_HPIAW_ADDR               0x01880004u

  #define _HPI_HPIAW_HPIAW_MASK         0xFFFFFFFCu
  #define _HPI_HPIAW_HPIAW_SHIFT        0x00000002u
  #define  HPI_HPIAW_HPIAW_DEFAULT      0x00000000u
  #define  HPI_HPIAW_HPIAW_OF(x)        _VALUEOF(x)

  #define HPI_HPIAW_DEFAULT (Uint32)( \
     _PER_FDEFAULT(HPI,HPIAW,HPIAW) \
  )

  #define HPI_HPIAW_RMK(hpiaw) (Uint32)( \
     _PER_FMK(HPI,HPIAW,HPIAW,hpiaw) \
   )

  #define _HPI_HPIAW_FGET(FIELD)\
    _PER_FGET(_HPI_HPIAW_ADDR,HPI,HPIAW,##FIELD)

  #define _HPI_HPIAW_FSET(FIELD,field)\
    _PER_FSET(_HPI_HPIAW_ADDR,HPI,HPIAW,##FIELD,field)

  #define _HPI_HPIAW_FSETS(FIELD,SYM)\
    _PER_FSETS(_HPI_HPIAW_ADDR,HPI,HPIAW,##FIELD,##SYM)

#endif /* C64_SUPPORT */
/******************************************************************************\
* _____________________
* |                   |
* |  H P I A R        |
* |___________________|
*
* HPIAR - HPI Address Read register
*
* FIELDS (msb -> lsb)
* (rw)  HPIAR
*
\******************************************************************************/
 #if (C64_SUPPORT)
  #define _HPI_HPIAR_OFFSET             2
  #define _HPI_HPIAR_ADDR               0x01880008u

  #define _HPI_HPIAR_HPIAR_MASK         0xFFFFFFFCu
  #define _HPI_HPIAR_HPIAR_SHIFT        0x00000002u
  #define  HPI_HPIAR_HPIAR_DEFAULT      0x00000000u
  #define  HPI_HPIAR_HPIAR_OF(x)        _VALUEOF(x)

  #define HPI_HPIAR_DEFAULT (Uint32)( \
     _PER_FDEFAULT(HPI,HPIAR,HPIAR) \
  )

  #define HPI_HPIAR_RMK(hpiar) (Uint32)( \
     _PER_FMK(HPI,HPIAR,HPIAR,hpiar) \
   )

  #define _HPI_HPIAR_FGET(FIELD)\
    _PER_FGET(_HPI_HPIAR_ADDR,HPI,HPIAR,##FIELD)

  #define _HPI_HPIAR_FSET(FIELD,field)\
    _PER_FSET(_HPI_HPIAR_ADDR,HPI,HPIAR,##FIELD,field)

  #define _HPI_HPIAR_FSETS(FIELD,SYM)\
    _PER_FSETS(_HPI_HPIAR_ADDR,HPI,HPIAR,##FIELD,##SYM)

#endif /* C64_SUPPORT */

/******************************************************************************\
* _____________________
* |                   |
* |  T R C T L        |
* |___________________|
*
* TRCTL - TR Control register
*
* FIELDS (msb -> lsb)
* (rw)  TRSTALL
* (rw)  PRI
* (rw)  PALLOC
*
\******************************************************************************/
 #if (C64_SUPPORT)
  #define _HPI_TRCTL_OFFSET             16384
  #define _HPI_TRCTL_ADDR               0x01890000u

  #define _HPI_TRCTL_TRSTALL_MASK         0x00000100u
  #define _HPI_TRCTL_TRSTALL_SHIFT        0x00000008u
  #define  HPI_TRCTL_TRSTALL_DEFAULT      0x00000000u
  #define  HPI_TRCTL_TRSTALL_OF(x)        _VALUEOF(x)

  #define _HPI_TRCTL_PRI_MASK         0x00000030u
  #define _HPI_TRCTL_PRI_SHIFT        0x00000004u
  #define  HPI_TRCTL_PRI_DEFAULT      0x00000002u
  #define  HPI_TRCTL_PRI_OF(x)        _VALUEOF(x)

  #define _HPI_TRCTL_PALLOC_MASK         0x0000000Fu
  #define _HPI_TRCTL_PALLOC_SHIFT        0x00000000u
  #define  HPI_TRCTL_PALLOC_DEFAULT      0x00000004u
  #define  HPI_TRCTL_PALLOC_OF(x)        _VALUEOF(x)

  #define HPI_TRCTL_DEFAULT (Uint32)( \
     _PER_FDEFAULT(HPI,TRCTL,TRSTALL) \
    |_PER_FDEFAULT(HPI,TRCTL,PRI) \
    |_PER_FDEFAULT(HPI,TRCTL,PALLOC) \
  )

  #define HPI_TRCTL_RMK(trstall,pri,palloc) (Uint32)( \
     _PER_FMK(HPI,TRCTL,TRSTALL,trstall) \
    |_PER_FMK(HPI,TRCTL,PRI,pri) \
    |_PER_FMK(HPI,TRCTL,PALLOC,palloc) \
   )

  #define _HPI_TRCTL_FGET(FIELD)\
    _PER_FGET(_HPI_TRCTL_ADDR,HPI,TRCTL,##FIELD)

  #define _HPI_TRCTL_FSET(FIELD,field)\
    _PER_FSET(_HPI_TRCTL_ADDR,HPI,TRCTL,##FIELD,field)

  #define _HPI_TRCTL_FSETS(FIELD,SYM)\
    _PER_FSETS(_HPI_TRCTL_ADDR,HPI,TRCTL,##FIELD,##SYM)

#endif /* C64_SUPPORT */



/*----------------------------------------------------------------------------*/

#endif /* HPI_SUPPORT */
#endif /* _CSL_HPIHAL_H_ */
/******************************************************************************\
* End of csl_hpihal.h
\******************************************************************************/

⌨️ 快捷键说明

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