spidriver.h
来自「一个基于windows mobile 的GPS 接受IC 驱动程序。」· C头文件 代码 · 共 77 行
H
77 行
#ifndef SPI_DRIVER_H__ // {
#define SPI_DRIVER_H__
#include "xllp_ssp.h"
#include "bulverde_clkmgr.h"
#include "bulverde_gpio.h"
enum SPI_DRIVER_FLAGS
{
ALLOW_ISR = 1,
DEBUG = 2
};
#define THREAD_PRIORITY_SPI_IST 100 // Same as USB
#define THREAD_PRIORITY_SPI_XFER (THREAD_PRIORITY_SPI_IST+2)
// higher than serial port.
#include "oalintr.h"
#ifndef SYSINTR_SSP3
#define SYSINTR_SSP3 (SYSINTR_FIRMWARE+25) // Need to get this from Johnson
#endif
//struct GPS_GPIO::BULVERDE_GPIO_REG;
//struct SSP::XLLP_SSP_REGS;
typedef struct
{
volatile XLLP_GPIO_T* v_pGPIORegs;
volatile XLLP_SSP_REGS* v_pSPIRegs;
volatile XLLP_CLKMGR_T* v_pClockRegs;
HANDLE mIsrHandle;
HANDLE mhIntr;
HANDLE mhGpsEvent;
HANDLE mhRxDone;
DWORD mIsrThreadID;
BOOL mbSignaledPower;
BOOL mbClosed;
UINT8 mShutDownData[16];
DWORD mShutDownCount;
DWORD mFlags;
BOOL mbDebug;
BOOL mbIsrAllow;
bool intackNeeded;
DWORD interruptTime_;
DWORD openTime_;
DWORD closeTime_;
// Constructor
void ctor(DWORD dwContext)
{
mFlags = dwContext;
// mShutDownCount = 0;
// mbClosed = false;
// mbSignaledPower = false;
// mbDebug = false;
// mbIsrAllow = false;
if (mFlags & ALLOW_ISR) mbIsrAllow = true;
if (mFlags & DEBUG ) mbDebug = true;
};
} SPI_DEVICE_CONTEXT;
//-----------------------------------------------------------------------------
//
// getSpiDeviceContext()
//
// Convert a hDeviceContext into a SPI device driver structure pointer.
//
//-----------------------------------------------------------------------------
inline SPI_DEVICE_CONTEXT* getSpiDeviceContext(DWORD hDeviceContext)
{
return reinterpret_cast<SPI_DEVICE_CONTEXT*> (hDeviceContext);
}
#endif // SPI_DRIVER_H__ }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?