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

📄 regctl.h

📁 usb 检验程序
💻 H
字号:
/******************************************************************************/
/*  REGCTL.H - Support Library to Access Registers 							  */
/*                                                                            */
/*     This file provides the header for the DSP's register support.          */
/*                                                                            */
/*  MACRO FUNCTIONS:                                                          */
/*     REG_READ          - Read register at specified address                 */
/*     REG_WRITE         - Write to register at specified address             */
/*     RESET_BIT         - Clears bit in register.                            */
/*     GET_BIT           - Returns bit value in register.                     */
/*     SET_BIT           - Sets bit in register.                              */
/*     MASK_BIT          - Create (1's) mask for specified bit.               */
/*     ASSIGN_BIT_VAL    - Assign bit to specified value                      */
/*     RESET_FIELD       - Clears field in register                           */
/*     GET_FIELD         - Returns value of bit field in a register           */
/*     MASK_FIELD        - Create (1's) mask for specified field              */
/*     LOAD_FIELD        - Assigns bit field in register                      */
/*                                                                            */
/******************************************************************************/
#ifndef __REGCTL_H_
#define __REGCTL_H_

/*----------------------------------------------------------------------------*/
/* General purpose Bits Definitions                                           */
/*----------------------------------------------------------------------------*/

typedef enum BitsE 
{
    BIT0     = 0,
    BIT1,
    BIT2,
    BIT3,
    BIT4,
    BIT5,
    BIT6,
    BIT7,
    BIT8,
    BIT9,
    BIT10,
    BIT11,
    BIT12,
    BIT13,
    BIT14,
    BIT15,
    BIT16,
    BIT17,
    BIT18,
    BIT19,
    BIT20,
    BIT21,
    BIT22,
    BIT23,
    BIT24,
    BIT25,
    BIT26,
    BIT27,
    BIT28,
    BIT29,
    BIT30,
    BIT31	= 31

} BitsT ; // end enum XsGpioIdE

/*----------------------------------------------------------------------------*/
/* MACRO FUNCTIONS                                                            */
/*----------------------------------------------------------------------------*/

#define CONTENTS_OF(addr) \
        (*((volatile unsigned int *)(addr)))

#define LENGTH_TO_BITS(length) \
        (~(0xffffffff << (length)))

/* MACROS to SET, CLEAR and RETURN bits and bitfields in Memory Mapped        */
/* locations using the address of the specified register.                     */

#define REG_READ(addr) \
        (CONTENTS_OF(addr))

#define REG_WRITE(addr,val) \
        (CONTENTS_OF(addr) = (val))


#define MASK_BIT(bit) \
        (1 << (bit))

#define RESET_BIT(addr,bit) \
        (CONTENTS_OF(addr) &= (~MASK_BIT(bit)))

#define GET_BIT(addr,bit) \
        ((CONTENTS_OF(addr) & MASK_BIT(bit)) ? 1 : 0)

#define SET_BIT(addr,bit) \
        (CONTENTS_OF(addr) = (CONTENTS_OF(addr)) | (MASK_BIT(bit)))

#define ASSIGN_BIT_VAL(addr,bit,val) \
        ( (val) ? SET_BIT(addr,bit) : RESET_BIT(addr,bit) )



#define MASK_FIELD(bit,length) \
        (LENGTH_TO_BITS(length) << (bit))

#define RESET_FIELD(addr,bit,length) \
        ( CONTENTS_OF(addr) &= (~MASK_FIELD(bit,length)))

#define GET_FIELD(addr,bit,length) \
       ((CONTENTS_OF(addr) & MASK_FIELD(bit,length)) >> bit)

#define LOAD_FIELD(addr,val,bit,length) \
        (CONTENTS_OF(addr) = (CONTENTS_OF(addr) & (~MASK_FIELD(bit,length))) | (val<<bit))

#endif /* #ifndef __REGCTL_H_ */

⌨️ 快捷键说明

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