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

📄 hw_common.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
/*   Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved.  */
/*******************************************************************
File :  hw_common.h
Desc :  IO方式操作寄存器的宏定义

Author : huangxinyu
Date :       2007-05-30
Notes :

$Log: hw_common.h,v $
Revision 1.4  2007/10/15 09:04:01  Huangxinyu
根据RK27提交修改driver

Revision 1.3  2007/10/08 02:38:41  Lingzhaojun
添加版本自动注释脚本


*********************************************************************/
#ifndef _HW_COMMON_H
#define _HW_COMMON_H

#include "typedef.h"

#define BIT0     1<<0
#define BIT1     1<<1
#define BIT2     1<<2
#define BIT3     1<<3
#define BIT4     1<<4
#define BIT5     1<<5
#define BIT6     1<<6
#define BIT7     1<<7
#define BIT8     1<<8
#define BIT9     1<<9
#define BIT10    1<<10
#define BIT11    1<<11
#define BIT12    1<<12
#define BIT13    1<<13
#define BIT14    1<<14
#define BIT15    1<<15
#define BIT16    1<<16
#define BIT17    1<<17
#define BIT18    1<<18
#define BIT19    1<<19
#define BIT20    1<<20
#define BIT21    1<<21
#define BIT22    1<<22
#define BIT23    1<<23
#define BIT24    1<<24
#define BIT25    1<<25
#define BIT26    1<<26
#define BIT27    1<<27
#define BIT28    1<<28
#define BIT29    1<<29
#define BIT30    1<<30
#define BIT31    1<<31

#ifndef FALSE
#define     FALSE   0
#endif

#ifndef TRUE
#define     TRUE    (!FALSE)
#endif

#ifndef NULL
#define NULL    0
#endif

//#define  RKabs(x)             ((x)>0?(x):-(x))
#define  hwMAX(a,b)           (int)(((int)a>=(int)b)?a:b)
#define  HwMIN(a,b)           (int)(((int)a<=(int)b)?a:b)
#define  BITMASK(nbits)     ((1<<nbits)-1)
#ifndef ARRSIZE /* 取得数组的元素个数 */
#define ARRSIZE( array ) ( sizeof(array)/sizeof(array[0]) )
#endif

#define ReadReg8(addr)                      (*(REG8 *)(addr))
//#define ReadReg8(addr)                     (DummyWriteReg =0xfc,(*(REG8 *)(addr)))
#define WriteReg8(addr, data)               (*(REG8  *)(addr) = data)
#define SetRegBits8(addr, databits)         WriteReg8(addr, ReadReg8(addr)|(databits))
#define ClrRegBits8(addr, databits)         WriteReg8(addr, ReadReg8(addr)&~(databits))
#define SetRegBit8(addr,bit)             WriteReg8(addr,(ReadReg8(addr)|(1<<bit)))
#define ClrRegBit8(addr,bit)             WriteReg8(addr,(ReadReg8(addr)&(~(1<<bit))))
#define GetRegBit8(addr,bit)             (ReadReg8(addr)&(1<<bit))
#define MaskRegBits8(addr, y, z)            WriteReg8(addr, (ReadReg8(addr)&~(y))|(z))

#define ReadReg16(addr)                     (*(REG16 *)(addr))
//#define ReadReg16(addr)                     (DummyWriteReg =0xfc,(*(REG16 *)(addr)))
#define WriteReg16(addr, data)              (*(REG16 *)(addr) = data)
#define SetRegBits16(addr, databit)         WriteReg16(addr, ReadReg16(addr)|(databit))
#define ClrRegBits16(addr, databit)         WriteReg16(addr, ReadReg16(addr)&~(databit))
#define SetRegBit16(addr,bit)             WriteReg16(addr,(ReadReg16(addr)|(1<<bit)))
#define ClrRegBit16(addr,bit)             WriteReg16(addr,(ReadReg16(addr)&(~(1<<bit))))
#define GetRegBit16(addr,bit)             (ReadReg16(addr)&(1<<bit))
#define MaskRegBits16(addr, y, z)           WriteReg16(addr, (ReadReg16(addr)&~(y))|(z))


#define ReadReg32(addr)                     (*(REG32 *)(addr))
#define WriteReg32(addr, data)              (*(REG32 *)(addr) = data)
#define SetRegBits32(addr, databit)         WriteReg32(addr, ReadReg32(addr)|(databit))
#define ClrRegBits32(addr, databit)         WriteReg32(addr, ReadReg32(addr)&~(databit))
#define SetRegBit32(addr,bit)             WriteReg32(addr,(ReadReg32(addr)|(1<<bit)))
#define ClrRegBit32(addr,bit)             WriteReg32(addr,(ReadReg32(addr)&(~(1<<bit))))
#define GetRegBit32(addr,bit)             (ReadReg32(addr)&(1<<bit))
#define MaskRegBits32(addr, y, z)           WriteReg32(addr, (ReadReg32(addr)&~(y))|(z))
typedef union
{
    UINT32 A;
    UINT32* B;
    void* C;
}VariableParam;
// UINT32 ReadReg32Fun(UINT32 addr);
//#define ReadReg32(addr)                     ReadReg32Fun((UINT32)addr)

#endif /* _HW_COMMON_H */

⌨️ 快捷键说明

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