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

📄 regs.h

📁 傅里叶变换
💻 H
字号:
/******************************************************************************/
/*  REGS.H - TMS320C54x Peripheral Support Library CPU Register Support       */
/*                                                                            */
/*     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                      */
/*     GET_REG           - Returns value of non memory mapped register        */
/*     SET_REG           - Sets value of a non memory mapped register         */
/*     GET_REG_BIT       - Return bit value in non memory mapped register     */
/*     SET_REG_BIT       - Sets bit in non memory mapped register             */
/*     RESET_REG_BIT     - Resets given bit in non memory mapped register     */
/*     GET_REG_FIELD     - Return value of specified register field           */
/*     LOAD_REG_FIELD    - Set value of specified register fiedl              */
/*                                                                            */
/*  1998 Oct 26 - Sub-set for use with C5410                                  */
/******************************************************************************/
#ifndef _REGS_H_
#define _REGS_H_

/*----------------------------------------------------------------------------*/
/* 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))

/* MACROS to SET, CLEAR and RETURN bits and bitfields in Memory Mapped        */
/* and Non-Memory Mapped using register names.                                */

#define GET_REG(reg) \
        (reg)

#define SET_REG(reg,val) \
        ((reg)= (val))

#define GET_REG_BIT(reg,bit) \
        ((reg) & MASK_BIT(bit) ? 1 : 0)

#define SET_REG_BIT(reg,bit) \
        ((reg) |= MASK_BIT(bit))

#define RESET_REG_BIT(reg,bit) \
        ((reg) &= (~MASK_BIT(bit)))

#define GET_REG_FIELD(reg,bit,length) \
        ((reg & MASK_FIELD(bit,length)) >> bit)

#define LOAD_REG_FIELD(reg,val,bit,length) \
        (reg &= (~MASK_FIELD(bit,length)) | (val<<bit))

#define FIELD_VAL(bit,length,val)       (MASK_FIELD(bit,length) & (val<<bit))

#define BIT_VAL(bit,val)                ((0x1&val)<<bit)

#endif /* ifndef _REGS_H_ */

⌨️ 快捷键说明

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