亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? spi.h

?? 三星 s3c6400測試代碼
?? H
字號:
#ifndef __SPI_H__
#define __SPI_h__

#include "dma.h"


#define SPI_TX_FIFO_SIZE	64
#define SPI_RX_FIFO_SIZE	64

#define SPI_NORMAL_DMA	// normal DMA or SDMA Selection.

#define SPI_INT_TRAILING		(1<<6)
#define SPI_INT_RX_OVERRUN		(1<<5)
#define SPI_INT_RX_UNDERRUN	(1<<4)
#define SPI_INT_TX_OVERRUN		(1<<3)
#define SPI_INT_TX_UNDERRUN	(1<<2)
#define SPI_INT_RX_FIFORDY		(1<<1)
#define SPI_INT_TX_FIFORDY		(1<<0)

// SPI Transfer mode
typedef enum _SPI_transfer_mode {
	SPI_POLLING_MODE=0,
	SPI_INTERRUPT_MODE,
	SPI_DMA_MODE,
} SPI_transfer_mode;

// SPI Master/Slave Selection
typedef enum _SPI_clock_mode {
	SPI_MASTER=0,
	SPI_SLAVE,
} SPI_clock_mode;

// SPI SFR Control Structure
typedef struct _SPI_SFR {
	u32 ch_cfg;			// 0x00 spi configuration register
	u32 clk_cfg;			// 0x04 clock configuration register
	u32 mode_cfg;		// 0x08 spi fifo control register
	u32 slave_sel;		// 0x0C slave selection signal
	u32 int_enable;		// 0x10 spi interrupt enable register
	u32 spi_status;		// 0x14 spi status register
	u32 spi_tx_data;		// 0x18 spi tx data register
	u32 spi_rx_data;		// 0x1C spi rx data register
	u32 packet_count;	// 0x20 count how many data master gets.
	u32 pending_clr;		// 0x24 pending clear register
	u32 swap_config;		// 0x28 swap config register
	u32 feedback_clk;	// 0x2C feedback clock config register
} SPI_SFR;

// SPI Clock Polarity.
typedef enum _SPI_CPOL {
	SPI_ACTIVE_HIGH=0,
	SPI_ACTIVE_LOW=1,
} SPI_CPOL;

// SPI Clock Phase
typedef enum _SPI_CPHA {
	SPI_FORMAT_A=0,
	SPI_FORMAT_B=1,
} SPI_CPHA;

// SPI Clock Source Selection
typedef enum _SPI_clock_selection {
	SPI_PCLK=0,
	SPI_USB_CLK=1,
	SPI_EPLL_CLK=2,
} SPI_clock_selection;

// SPI Transfer Data Type.
typedef enum _SPI_transfer_data_type {
	SPI_BYTE=0,
	SPI_HWORD=1,
	SPI_WORD=2
} SPI_transfer_data_type;

// SPI Swap mode Selection Structure.
typedef enum _SPI_swapMode {
	SPI_NO_SWAP=0x0,
	SPI_EN_SWAP=0x1,
	SPI_BIT_SWAP=0x3,		// Enable and bit swap.
	SPI_BYTE_SWAP=0x5,	// Enable and byte swap.
	SPI_HWORD_SWAP=0x9	// Enable and hword swap.
} SPI_swapMode;

// SPI Feedback Clock Delay Value.
typedef enum _SPI_feedbackClock {
	SPI_0NS_DELAY=0x0,	
	SPI_2NS_DELAY=0x1,	
	SPI_4NS_DELAY=0x2,
	SPI_6NS_DELAY=0x3,
} SPI_feedbackClock;

// SPI DMA mode Structure.
typedef enum _SPI_DMA_type {
	SPI_DMA_SINGLE=0,
	SPI_DMA_4_BURST,
} SPI_DMA_type;

// SPI Channel Descriptor, that is embedded in kernal.
typedef struct _SPI_Channel {
	SPI_SFR * m_cBase;					// SFR Base Register
	SPI_transfer_mode m_eTransferMode;	// Polling/Interrupt/DMA
	SPI_clock_mode m_eClockMode;		// Master / Slave
	SPI_transfer_data_type m_eChSize;		// Channel Bandwidth
	SPI_transfer_data_type m_eBusSize;		// Bus Bandwidth
	SPI_DMA_type m_eDMAType;			// Single/Burst DMA
	u8 * m_uRxBuf;						// RX buffer pointer
	u8 * m_uTxBuf;						// TX buffer pointer
	u32 m_uRxRemainDataSize;			// Rx remain data size.
	u32 m_uTxRemainDataSize;			// Tx remain data size.
	u16 m_uTraillingCnt;					// trailling count
	u8 m_ucChannelNum;					// channel number
	u8 m_ucTxLevel;						// tx trigger level
	u8 m_ucRxLevel;						// rx trigger level
	u8 m_cPrescaler;					// Prescaler Value;
	u8 m_cChannelNum;					// Channel Number;
	bool m_bIsAutoChipSelection;			// Auto Chip selection Test.
	SPI_CPOL m_eCPOL;					// CPOL
	SPI_CPHA m_eCPHA;					// CPHA
	SPI_clock_selection m_eClockSource;	// Clock source
	SPI_swapMode m_eRxSwap;			// rx swap config
	SPI_swapMode m_eTxSwap;			// tx swap config
	SPI_feedbackClock m_eFeedbackClock;	// spi feedback clock
	u8 m_ucIntNum;//		= NUM_DMA1;	// store interrupt Number
	u8 m_ucDMACon;// 		= DMA1;		// store Dma number.
	DMAC m_sDMA;						// DMA Descriptor
	void (*m_fISR)(void) __irq;				// interrupt handler.
	void (*m_fDMA)(void) __irq;			// dma interrupt handler.
	void (*m_pCallback)(struct _SPI_Channel *);		// callback function pointer - for generate transfer completed signal
} SPI_channel;


void SPI_pollingProcess( SPI_channel* ch );
void __irq SPI_interruptChannel0( void );
void __irq SPI_interruptChannel1( void );
void __irq SPI_DMADoneChannel0(void );
void __irq SPI_DMADoneChannel1(void );
void SPI_cpuOneTxTransfer( SPI_channel *ch );
void SPI_cpuOneRxTransfer( SPI_channel *ch );
void SPI_transactionDone( SPI_channel * ch );
SPI_channel * SPI_open( u8 channel, SPI_clock_mode master, SPI_CPOL cpol, SPI_CPHA cpha, SPI_clock_selection clock,
						u32 clk_freq, SPI_transfer_data_type ch_size, SPI_transfer_data_type bus_size, SPI_DMA_type dma_type );

int SPI_transaction( SPI_channel * ch, SPI_transfer_mode mode, u8* tx_data, u8* rx_data, u32 size, void (*callbackFn)(SPI_channel *ch) );
void SPI_close( SPI_channel * ch );
void SPI_printStatus( SPI_channel * ch );
void SPI_setBasicRegister( SPI_channel* ch );
void SPI_setFeedbackClock( SPI_channel* ch, SPI_feedbackClock clock );
void SPI_setSwapMode( SPI_channel * ch, SPI_swapMode rx_swap, SPI_swapMode tx_swap );
void SPI_setTxRxTriggerLevel( SPI_channel * ch, u8 rxLevel, u8 txLevel );
void SPI_ErrorCheck(SPI_channel* ch);

// normal SPI setting.
void SPI_Port_Init(void);
void SPI_GPIOPortSet(u8 channel);

// Test Only - Between Peripherals DMA Test.
int SPI_PtoPTransaction( SPI_channel * ch, SPI_transfer_mode mode, u32 size, void (*callbackFn)(SPI_channel *ch) );

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产不卡免费视频| 久久国产尿小便嘘嘘尿| 91麻豆免费视频| 亚洲欧美日韩综合aⅴ视频| 色视频欧美一区二区三区| 亚洲亚洲人成综合网络| 678五月天丁香亚洲综合网| 日日摸夜夜添夜夜添精品视频| 欧美日韩一区二区在线观看视频| 午夜天堂影视香蕉久久| 精品国产亚洲在线| 91亚洲国产成人精品一区二区三| 一区二区在线看| 欧美一级专区免费大片| 国产精品自在在线| 亚洲欧美日韩中文字幕一区二区三区| 色天使色偷偷av一区二区 | 久久综合九色综合欧美亚洲| 国产美女精品人人做人人爽| 亚洲男人都懂的| 欧美日韩中文字幕一区| 国产一区二区不卡在线| 亚洲一区二区欧美| 久久久久久电影| 在线看国产一区二区| 久久福利资源站| 亚洲欧美乱综合| 欧美不卡123| 在线观看视频91| 国产在线精品视频| 午夜精品久久久久| 国产精品久久久久永久免费观看| 欧美性猛交xxxxxxxx| 国产成人亚洲综合a∨婷婷图片| 亚洲一区在线看| 中文字幕成人网| 日韩欧美国产午夜精品| 色哟哟在线观看一区二区三区| 九色综合国产一区二区三区| 一区二区成人在线视频| 国产日韩欧美高清在线| 日韩欧美激情在线| 欧美性生活影院| av一区二区三区四区| 激情偷乱视频一区二区三区| 亚洲国产综合人成综合网站| 中文字幕色av一区二区三区| 精品国产露脸精彩对白| 欧美视频你懂的| 91视频观看视频| 国产成人精品综合在线观看| 日韩av成人高清| 亚洲午夜久久久久久久久久久| 国产午夜精品久久| 久久蜜桃av一区二区天堂| 在线不卡的av| 欧美性大战久久久久久久| 成人av电影在线播放| 高清成人在线观看| 韩国精品一区二区| 韩国中文字幕2020精品| 免费观看在线综合| 日韩高清国产一区在线| 亚洲影院在线观看| 一区二区三区不卡视频在线观看| 亚洲国产高清不卡| 欧美国产精品一区二区| 国产亚洲综合av| 日本一区二区免费在线| 国产欧美一区二区在线| 欧美国产日韩一二三区| 国产精品剧情在线亚洲| 日本一区二区三区四区| 国产精品素人一区二区| 国产精品看片你懂得| 最新国产精品久久精品| 中文字幕一区免费在线观看 | 69堂成人精品免费视频| 欧美日韩三级一区| 欧美特级限制片免费在线观看| 91啪亚洲精品| 色就色 综合激情| 欧美无砖砖区免费| 欧美久久久久中文字幕| 欧美精品777| 日韩色视频在线观看| 欧美大片一区二区三区| 国产日韩欧美一区二区三区乱码| 国产日产欧美一区| 亚洲精品国产无天堂网2021| 亚洲午夜精品在线| 美脚の诱脚舐め脚责91| 国内精品久久久久影院薰衣草| 国产一区二区主播在线| av不卡在线观看| 欧美日韩一区视频| 欧美成人vps| 国产精品毛片久久久久久| 一区二区日韩av| 蜜桃久久av一区| 成人av手机在线观看| 欧美视频一区二区三区在线观看| 91精品国产综合久久精品性色| 精品国产亚洲在线| 自拍偷拍亚洲激情| 五月天视频一区| 国产成人综合网站| 欧美私模裸体表演在线观看| 精品久久久久久久久久久院品网| 国产精品天干天干在线综合| 亚洲国产成人va在线观看天堂| 免费观看91视频大全| 成人美女视频在线观看18| 欧美日韩一区在线观看| 国产欧美一区二区三区沐欲| 亚洲午夜精品久久久久久久久| 国产在线不卡一区| 在线观看一区不卡| 久久亚洲私人国产精品va媚药| 中文字幕一区二区三| 蜜桃av一区二区三区电影| 成人亚洲一区二区一| 欧美一级一区二区| 综合网在线视频| 国产一区二区不卡在线 | eeuss鲁片一区二区三区| 欧洲亚洲精品在线| 国产片一区二区| 日韩激情一区二区| 91免费在线播放| 久久你懂得1024| 日av在线不卡| 欧美亚洲国产一卡| 中文字幕在线观看不卡视频| 捆绑调教一区二区三区| 欧美日韩亚州综合| 亚洲欧美在线视频观看| 黄色精品一二区| 91精品婷婷国产综合久久| 一区二区三区在线视频观看58| 国产伦精品一区二区三区视频青涩| 欧美日韩免费电影| 亚洲免费毛片网站| 成人深夜视频在线观看| 久久久久久久综合色一本| 日本欧美一区二区在线观看| 欧美午夜免费电影| 一区二区不卡在线播放| 色综合久久综合| 自拍视频在线观看一区二区| 成人免费黄色在线| 国产片一区二区| 粉嫩欧美一区二区三区高清影视| 日韩一区二区影院| 日韩国产在线一| 欧美日韩免费在线视频| 亚洲综合色区另类av| 色婷婷国产精品| 一区二区三区加勒比av| 91传媒视频在线播放| 亚洲少妇屁股交4| 日本精品视频一区二区| 亚洲欧美国产三级| 日本高清不卡在线观看| 亚洲精品中文字幕乱码三区| 91在线无精精品入口| 亚洲视频在线观看一区| av一区二区三区四区| 亚洲美女偷拍久久| 色先锋久久av资源部| 一区二区三区av电影| 欧美日韩精品一区二区天天拍小说 | 亚洲视频一区在线观看| 91在线高清观看| 一区二区三区在线不卡| 91免费版在线| 亚洲电影在线免费观看| 欧美浪妇xxxx高跟鞋交| 久色婷婷小香蕉久久| 国产网站一区二区三区| av在线一区二区| 亚洲国产婷婷综合在线精品| 欧美日韩电影在线| 久久国产福利国产秒拍| 中文字幕欧美区| 在线免费观看日本一区| 日韩电影在线免费| 久久综合九色综合欧美就去吻| 粉嫩av亚洲一区二区图片| 亚洲色图丝袜美腿| 欧美精品一级二级三级| 精品无人区卡一卡二卡三乱码免费卡| 久久夜色精品一区| 色狠狠桃花综合| 青青草97国产精品免费观看无弹窗版| 日韩欧美国产1| 91在线无精精品入口| 日本美女一区二区| 中文字幕第一页久久| 欧美三区在线观看|