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

📄 csl_legacyhal.h

📁 SEED的VPM642测试程序-板级支持库
💻 H
📖 第 1 页 / 共 5 页
字号:
/*

 *  Copyright 2001 by Texas Instruments Incorporated.

 *  All rights reserved. Property of Texas Instruments Incorporated.

 *  Restricted rights to use, duplicate or disclose this code are

 *  granted through contract.

 *  

 */

/* "@(#) DSP/BIOS 4.60.22 12-07-01 (barracuda-j15)" */

/******************************************************************************\

*           Copyright (C) 2000 Texas Instruments Incorporated.

*                           All Rights Reserved

*------------------------------------------------------------------------------

* FILENAME...... csl_legacyhal.h

* DATE CREATED.. 09/01/2000

* LAST MODIFIED. 03/08/2002

\******************************************************************************/

#ifndef _CSL_LEGACYHAL_H_

#define _CSL_LEGACYHAL_H_



#include "csl_stdinc.h"

#include "csl_chiphal.h"



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

/* Legacy HAL support macro definitions                                       */

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

  #define _VALUEOF(x) ((Uint32)(x))



#ifndef UNREFERENCED_PARAMETER

  #define UNREFERENCED_PARAMETER(P)    ((P)=(P))

#endif



#ifndef REG32

  #define REG32(addr) (*(volatile unsigned int*)(addr))

  #define REG16(addr) (*(volatile unsigned short*)(addr))

  #define REG8(addr) (*(volatile unsigned char*)(addr))

#endif



/* memory mapped register macros */

#define HFIELD_GET(RegAddr,FIELD) (Uint32)( \

  (REG32(RegAddr)&##FIELD##_MASK)>>##FIELD##_SHIFT \

)



#define HFIELD_SET(RegAddr,FIELD,Val) REG32(RegAddr)=(Uint32)( \

  (REG32(RegAddr)&~##FIELD##_MASK)| \

  (((Uint32)(Val)<<##FIELD##_SHIFT)&##FIELD##_MASK) \

)



#define HFIELD_SHIFT(FIELD,Val) \

  (((Uint32)(Val)<<##FIELD##_SHIFT)&##FIELD##_MASK)



#define HREG32_GET(RegAddr) \

  (Uint32)REG32(RegAddr)



#define HREG32_SET(RegAddr,Val) \

  REG32(RegAddr)=(Uint32)(Val)



/* control register macros */

#define HCRFIELD_GET(CRREG,FIELD) (Uint32)( \

  (((CRREG)&##FIELD##_MASK)>>##FIELD##_SHIFT) \

)







#define HCRFIELD_SET(CRREG,FIELD,Val) CRREG = (Uint32)( \

  ((CRREG)&~##FIELD##_MASK)| \

  (((Uint32)(Val)<<##FIELD##_SHIFT)&##FIELD##_MASK) \

)



#define HCRFIELD_SHIFT(FIELD,Val) \

  (((Uint32)(Val)<<##FIELD##_SHIFT)&##FIELD##_MASK)



#define HCRREG32_GET(CRREG) \

  (Uint32)(CRREG)



#define HCRREG32_SET(CRREG,Val) \

  (CRREG)=(Uint32)(Val)





/******************************************************************************\

*           Copyright (C) 1999-2000 Texas Instruments Incorporated.

*                           All Rights Reserved

*------------------------------------------------------------------------------

* FILENAME...... chiphal.h

* DATE CREATED.. 08/19/1999 

* LAST MODIFIED. 03/08/2000

*   

*------------------------------------------------------------------------------

* DESCRIPTION:  (HAL interface file for the CHIP module)

* 

* CHIP Control Registers Covered

*   HCHIP_CSR    - control status register

*   HCHIP_IFR    - interrupt flag register

*   HCHIP_ISR    - interrupt set register

*   HCHIP_ICR    - interrupt clear register

*   HCHIP_IER    - interrupt enable register

*   HCHIP_ISTP   - interrupt service table pointer

*   HCHIP_IRP    - interrrupt return pointer

*   HCHIP_NRP    - nonmaskable interrupt return pointer

*   HCHIP_AMR    - addressing mode register

*   HCHIP_FADCR  - floating-point adder config register (1)

*   HCHIP_FAUCR  - floating-point auxiliary config register (1)

*   HCHIP_FMCR   - floating-point multiplier config register (1)

*

*   (1) only on devices with an FPU

*

\******************************************************************************/

#ifndef _CHIPHAL_H_

#define _CHIPHAL_H_



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



#define HCHIP_PERBASE_ADDR   (0x01800000)



/******************************************************************************\

* HCHIP_NULL - dummy register

*

\******************************************************************************/

  #define HCHIP_NULL_ADDR                       ((UINT32)(0x01840074))

  #define HCHIP_NULL                            REG32(HCHIP_NULL_ADDR)



/******************************************************************************\

* HCHIP_CSR - control status register

*

* Fields:

*   (RW) HCHIP_CSR_GIE

*   (RW) HCHIP_CSR_PGIE

*   (RW) HCHIP_CSR_DCC

*   (RW) HCHIP_CSR_PCC

*   (R)  HCHIP_CSR_EN

*   (RC) HCHIP_CSR_SAT

*   (RW) HCHIP_CSR_PWRD

*   (R)  HCHIP_CSR_REVID

*   (R)  HCHIP_CSR_CPUID

*

\******************************************************************************/

  extern far cregister volatile unsigned int CSR;

  #define HCHIP_CSR CSR

  

/*----------------------------------------------------------------------------*\

* (RW) HCHIP_CSR_GIE

\*----------------------------------------------------------------------------*/ 

  #define HCHIP_CSR_GIE_MASK                     (0x00000001)

  #define HCHIP_CSR_GIE_SHIFT                    (0x00000000)

  

  #define HCHIP_CSR_GIE_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_CSR_GIE)



  #define HCHIP_CSR_GIE_SET(CrReg,Val) \

    HCRFIELD_SET(CrReg,HCHIP_CSR_GIE,Val)



/*----------------------------------------------------------------------------*\

* (RW) HCHIP_CSR_PGIE

\*----------------------------------------------------------------------------*/

  #define HCHIP_CSR_PGIE_MASK                    (0x00000002)

  #define HCHIP_CSR_PGIE_SHIFT                   (0x00000001) 



  #define HCHIP_CSR_PGIE_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_CSR_PGIE)



  #define HCHIP_CSR_PGIE_SET(CrReg,Val) \

    HCRFIELD_SET(CrReg,HCHIP_CSR_PGIE,Val)



/*----------------------------------------------------------------------------*\

* (RW) HCHIP_CSR_DCC

\*----------------------------------------------------------------------------*/

  #define HCHIP_CSR_DCC_MASK                     (0x0000001C)

  #define HCHIP_CSR_DCC_SHIFT                    (0x00000002)



  #define HCHIP_CSR_DCC_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_CSR_DCC)



  #define HCHIP_CSR_DCC_SET(CrReg,Val) \

    HCRFIELD_SET(CrReg,HCHIP_CSR_DCC,Val)



/*----------------------------------------------------------------------------*\

* (RW) HCHIP_CSR_PCC

\*----------------------------------------------------------------------------*/

  #define HCHIP_CSR_PCC_MASK                     (0x000000E0)

  #define HCHIP_CSR_PCC_SHIFT                    (0x00000005)



  #define HCHIP_CSR_PCC_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_CSR_PCC)



  #define HCHIP_CSR_PCC_SET(CrReg,Val) \

    HCRFIELD_SET(CrReg,HCHIP_CSR_PCC,Val)



/*----------------------------------------------------------------------------*\

* (R) HCHIP_CSR_EN

\*----------------------------------------------------------------------------*/

  #define HCHIP_CSR_EN_MASK                      (0x00000100)

  #define HCHIP_CSR_EN_SHIFT                     (0x00000008)

  

  #define HCHIP_CSR_EN_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_CSR_EN)



/*----------------------------------------------------------------------------*\

* (RC) HCHIP_CSR_SAT

\*----------------------------------------------------------------------------*/

  #define HCHIP_CSR_SAT_MASK                     (0x00000200)

  #define HCHIP_CSR_SAT_SHIFT                    (0x00000009)



  #define HCHIP_CSR_SAT_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_CSR_SAT)



  #define HCHIP_CSR_SAT_SET(CrReg,Val) \

    HCRFIELD_SET(CrReg,HCHIP_CSR_SAT,Val)



/*----------------------------------------------------------------------------*\

* (W) HCHIP_CSR_PWRD

\*----------------------------------------------------------------------------*/

  #define HCHIP_CSR_PWRD_MASK                    (0x0000FC00)

  #define HCHIP_CSR_PWRD_SHIFT                   (0x0000000A)



  #define HCHIP_CSR_PWRD_SET(CrReg,Val) \

    HCRFIELD_SET(CrReg,HCHIP_CSR_PWRD,Val)



/*----------------------------------------------------------------------------*\

* (R) HCHIP_CSR_REVID

\*----------------------------------------------------------------------------*/

  #define HCHIP_CSR_REVID_MASK                   (0x00FF0000)

  #define HCHIP_CSR_REVID_SHIFT                  (0x00000010) 

  

  #define HCHIP_CSR_REVID_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_CSR_REVID)



/*----------------------------------------------------------------------------*\

* (R) HCHIP_CSR_CPUID

\*----------------------------------------------------------------------------*/

  #define HCHIP_CSR_CPUID_MASK                   (0xFF000000)

  #define HCHIP_CSR_CPUID_SHIFT                  (0x00000018)



  #define HCHIP_CSR_CPUID_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_CSR_CPUID)



/*----------------------------------------------------------------------------*\

* (RW) HCHIP_CSR

\*----------------------------------------------------------------------------*/

  #define HCHIP_CSR_GET(CrReg) HCRREG32_GET(CrReg)



  #define HCHIP_CSR_SET(CrReg,Val) HCRREG32_SET(CrReg,Val)



  #define HCHIP_CSR_CFG(CrReg,gie,pgie,dcc,pcc,pwrd) CrReg=(UINT32)( \

    HCRFIELD_SHIFT(HCHIP_CSR_GIE, gie) |\

    HCRFIELD_SHIFT(HCHIP_CSR_PGIE,pgie)|\

    HCRFIELD_SHIFT(HCHIP_CSR_DCC, dcc) |\

    HCRFIELD_SHIFT(HCHIP_CSR_PCC, pcc) |\

    HCRFIELD_SHIFT(HCHIP_CSR_PWRD,pwrd) \

  )



/******************************************************************************\

* HCHIP_IFR - interrupt flag register

*

* Fields:

*   (R)  HCHIP_IFR_NMIF

*   (R)  HCHIP_IFR_IF4

*   (R)  HCHIP_IFR_IF5

*   (R)  HCHIP_IFR_IF6

*   (R)  HCHIP_IFR_IF7

*   (R)  HCHIP_IFR_IF8

*   (R)  HCHIP_IFR_IF9

*   (R)  HCHIP_IFR_IF10

*   (R)  HCHIP_IFR_IF11

*   (R)  HCHIP_IFR_IF12

*   (R)  HCHIP_IFR_IF13

*   (R)  HCHIP_IFR_IF14

*   (R)  HCHIP_IFR_IF15

*

\******************************************************************************/

  extern far cregister volatile unsigned int IFR;

  #define HCHIP_IFR IFR



/*----------------------------------------------------------------------------*\

* (R) HCHIP_IFR_NMIF

\*----------------------------------------------------------------------------*/

  #define HCHIP_IFR_NMIF_MASK                    (0x00000002)

  #define HCHIP_IFR_NMIF_SHIFT                   (0x00000001)



  #define HCHIP_IFR_NMIF_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_IFR_NMIF)



/*----------------------------------------------------------------------------*\

* (R) HCHIP_IFR_IF4

\*----------------------------------------------------------------------------*/

  #define HCHIP_IFR_IF4_MASK                     (0x00000010)

  #define HCHIP_IFR_IF4_SHIFT                    (0x00000004)



  #define HCHIP_IFR_IF4_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_IFR_IF4)



/*----------------------------------------------------------------------------*\

* (R) HCHIP_IFR_IF5

\*----------------------------------------------------------------------------*/

  #define HCHIP_IFR_IF5_MASK                     (0x00000020)

  #define HCHIP_IFR_IF5_SHIFT                    (0x00000005)



  #define HCHIP_IFR_IF5_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_IFR_IF5)



/*----------------------------------------------------------------------------*\

* (R) HCHIP_IFR_IF6

\*----------------------------------------------------------------------------*/

  #define HCHIP_IFR_IF6_MASK                     (0x00000040)

  #define HCHIP_IFR_IF6_SHIFT                    (0x00000006)



  #define HCHIP_IFR_IF6_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_IFR_IF6)



/*----------------------------------------------------------------------------*\

* (R) HCHIP_IFR_IF7

\*----------------------------------------------------------------------------*/

  #define HCHIP_IFR_IF7_MASK                     (0x00000080)

  #define HCHIP_IFR_IF7_SHIFT                    (0x00000007)



  #define HCHIP_IFR_IF7_GET(CrReg) \

    HCRFIELD_GET(CrReg,HCHIP_IFR_IF7)



/*----------------------------------------------------------------------------*\

* (R) HCHIP_IFR_IF8

⌨️ 快捷键说明

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