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

📄 drvglobal.h

📁 mstar 776 开发的车载dvd
💻 H
字号:
////////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2006-2007 MStar Semiconductor, Inc.
// All rights reserved.
//
// Unless otherwise stipulated in writing, any and all information contained
// herein regardless in any format shall remain the sole proprietary of
// MStar Semiconductor Inc. and be kept in strict confidence
// (¨MStar Confidential Information〃) by the recipient.
// Any unauthorized act including without limitation unauthorized disclosure,
// copying, use, reproduction, sale, distribution, modification, disassembling,
// reverse engineering and compiling of the contents of MStar Confidential
// Information is unlawful and strictly prohibited. MStar hereby reserves the
// rights to any and all damages, losses, costs and expenses resulting therefrom.
//
////////////////////////////////////////////////////////////////////////////////

#ifndef DRV_GLOBAL_H
#define DRV_GLOBAL_H

#include "DataType.h"

#include "board.h"

/******************************************************************************/
/*                   Macros                                                   */
/******************************************************************************/

#define MDrv_ReadByte( u16Reg )  XBYTE[u16Reg]

#define MDrv_Read3Byte( u16Reg ) MDrv_ReadU24LE( (U32 xdata *) (u16Reg) )
#define MDrv_Read4Byte( u16Reg ) MDrv_ReadU32LE( (U32 xdata *) (u16Reg) )

#define MDrv_WriteByte( u16Reg, u8Value )   (XBYTE[u16Reg] = u8Value)

#define MDrv_Write3Byte( u16Reg, u32Value ) MDrv_WriteU24LE( (U32 xdata *) (u16Reg), u32Value )
#define MDrv_Write4Byte( u16Reg, u32Value ) MDrv_WriteU32LE( (U32 xdata *) (u16Reg), u32Value )

#define MDrv_WriteByteMask( u16Reg, u8Value, u8Mask )    \
    (XBYTE[u16Reg] = (XBYTE[u16Reg] & ~(u8Mask)) | ((u8Value) & (u8Mask)))

#define MDrv_ReadRegBit( u16Reg, u8BitPos ) \
    (MDrv_ReadByte( u16Reg ) & (u8BitPos))

#define MDrv_WriteRegBit( u16Reg, bBit, u8BitPos ) \
    (XBYTE[u16Reg] = (bBit) ? (XBYTE[u16Reg] | (u8BitPos)) : (XBYTE[u16Reg] & ~(u8BitPos)))

/******************************************************************************/
/*                   Macros for MDrv_WriteRegTbl()                            */
/******************************************************************************/

typedef U8 MS_REG_INIT;

#define _RV1(addr, value)   (((addr) >> 8) & 0x3F), ((addr) & 0xFF), ((value) & 0xFF)
#define _RV2(addr, value)   0x40 + _RV1(addr, value), (((value) >> 8) & 0xFF)
#define _RV3(addr, value)   0x40 + _RV2(addr, value), (((value) >> 16) & 0xFF)
#define _RV4(addr, value)   0x40 + _RV3(addr, value), (((value) >> 24) & 0xFF)
#define _END_OF_TBL2_       0xFF, 0xFF

/******************************************************************************/
/*                   Function Prototypes                                      */
/******************************************************************************/

#ifdef DRV_GLOBAL_C
#define INTERFACE
#else
#define INTERFACE extern
#endif

INTERFACE U16  MDrv_Read2Byte( U16 u16Reg );
INTERFACE void MDrv_Write2Byte( U16 u16Reg, U16 u16Val );
INTERFACE void MDrv_Write2ByteA( U16 u16Reg, U16 u16Value);// kevin e


INTERFACE U16  MDrv_ReadU16LE( U16 *pLoc );
INTERFACE U32  MDrv_ReadU24LE( U32 *pLoc );
INTERFACE U32  MDrv_ReadU32LE( U32 *pLoc );
INTERFACE void MDrv_WriteU16LE( U16 *pLoc, U16 u16Val );
INTERFACE void MDrv_WriteU24LE( U32 *pLoc, U32 u32Val );
INTERFACE void MDrv_WriteU32LE( U32 *pLoc, U32 u32Val );

// INTERFACE void MDrv_WriteRegTbl ( MS_REG_TYPE *pRegTable );
// INTERFACE void MDrv_WriteRegTbl2 ( MS_REG_INIT *pRegTable );

// pRegTable can be both "MS_REG_TYPE *" or "MS_REG_INIT *" on S2 and later
INTERFACE void MDrv_WriteRegTbl ( void *pRegTable );
#define MDrv_WriteRegTbl2( pRegTable )  MDrv_WriteRegTbl( pRegTable )
INTERFACE void MDrv_WriteRegTbl3(MS_REG16_TYPE* pu16Table);
INTERFACE void MDrv_WriteRegTbl4(MS_REG_TYPE* pu8Table);

#undef INTERFACE

#endif /* DRV_GLOBAL_H */

⌨️ 快捷键说明

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