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

📄 sidynamic.h

📁 wince下SPI流驱动
💻 H
字号:

#define S2410FCLK       	(203 * 1000 * 1000)		// 203MHz (FCLK).
#define PCLKDIV         	4						// P-clock (PCLK) divisor.
#define S2410PCLK       	(S2410FCLK / PCLKDIV)	// PCLK.

#define SPIDLL_API   __declspec(dllexport)


#ifdef __cplusplus
extern "C"
{
#endif

BOOL VirtualCopy( LPVOID, LPVOID, DWORD, DWORD );

#ifdef __cplusplus
}
#endif

#define SSP_BASE 0xB1900000  // 0x59000000
typedef struct  {
		unsigned int	rSPCON0; 	// 00
		unsigned int	rSPSTA0;
		unsigned int	rSPPIN0;
		unsigned int	rSPPRE0;
		unsigned int	rSPTDAT0;	// 10
		unsigned int	rSPRDAT0;
		unsigned int	rPAD[2];
		unsigned int	rSPCON1; 	// 20
		unsigned int	rSPSTA1;
		unsigned int	rSPPIN1;
		unsigned int	rSPPRE1;
		unsigned int	rSPTDAT1; 	// 30
		unsigned int	rSPRDAT1;
}SSPreg ;

#define IOP_BASE        0xB1600000 // 0x56000000
typedef struct  {
		unsigned int  rGPACON;			// 00
		unsigned int  rGPADAT;
		unsigned int  rPAD1[2];

		unsigned int  rGPBCON;			// 10
		unsigned int  rGPBDAT;
		unsigned int  rGPBUP;
		unsigned int  rPAD2;

		unsigned int  rGPCCON;			// 20
		unsigned int  rGPCDAT;
		unsigned int  rGPCUP;
		unsigned int  rPAD3;

		unsigned int  rGPDCON;			// 30
		unsigned int  rGPDDAT;
	    unsigned int  rGPDUP;
	    unsigned int  rPAD4;

		unsigned int  rGPECON;			// 40
		unsigned int  rGPEDAT;
		unsigned int  rGPEUP;
		unsigned int  rPAD5;

		unsigned int  rGPFCON;			// 50
		unsigned int  rGPFDAT;
		unsigned int  rGPFUP;
		unsigned int  rPAD6;

		unsigned int  rGPGCON;			// 60
		unsigned int  rGPGDAT;
		unsigned int  rGPGUP;
		unsigned int  rPAD7;

		unsigned int  rGPHCON;			// 70
		unsigned int  rGPHDAT;
		unsigned int  rGPHUP;
		unsigned int  rPAD8;

		unsigned int  rMISCCR;			// 80
		unsigned int  rDCKCON;
		unsigned int  rEXTINT0;
		unsigned int  rEXTINT1;
		unsigned int  rEXTINT2;			// 90
		unsigned int  rEINTFLT0;
		unsigned int  rEINTFLT1;
		unsigned int  rEINTFLT2;
		unsigned int  rEINTFLT3;		// A0
		unsigned int  rEINTMASK;
		unsigned int  rEINTPEND;
		unsigned int  rGSTATUS0;		// AC
		unsigned int  rGSTATUS1;		// B0
		unsigned int  rGSTATUS2;		// B4 ;;; SHL
		unsigned int  rGSTATUS3;		// B8
		unsigned int  rGSTATUS4;		// BC

		unsigned int  rFLTOUT;			// C0
		unsigned int  rDSC0;
		unsigned int  rDSC1;
		unsigned int  rMSLCON;

		unsigned int  rGPJCON;			// D0
		unsigned int  rGPJDAT;
		unsigned int  rGPJUP;
		unsigned int  rPAD9;

}IOPreg;


SPIDLL_API DWORD SPI_Init(DWORD dwContext);
SPIDLL_API DWORD SPI_Deinit( DWORD dwContext );    // future: pointer to the per disk structure
SPIDLL_API DWORD SPI_Open( DWORD dwData, DWORD dwAccess, DWORD dwShareMode);
SPIDLL_API DWORD SPI_Close(DWORD Handle);
SPIDLL_API DWORD SPI_IOControl(DWORD Handle,DWORD dwIoControlCode,PBYTE pInBuf,DWORD nInBufSize,PBYTE pOutBuf,DWORD nOutBufSize,PDWORD pBytesReturned);
SPIDLL_API DWORD SPI_Read(DWORD Handle, char* pBuffer, DWORD dwNumBytes);
SPIDLL_API DWORD SPI_Write(DWORD Handle, char* pBuffer, DWORD dwNumBytes);
SPIDLL_API DWORD SPI_Seek(DWORD Handle, long lDistance, DWORD dwMoveMethod);
SPIDLL_API void  SPI_PowerUp(void);
SPIDLL_API void  SPI_PowerDown(void);

BOOL SPI_InitAddrIO(void);
BOOL SPI_InitAddrSPI(void);
void InitSPI(void);

⌨️ 快捷键说明

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