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

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

?? cs8900aend.c

?? 來自官方的S3C2410 BSP for VxWorks
?? C
?? 第 1 頁 / 共 4 頁
字號:
			(int)0,			/* start bit0 */			(int)2,			/* change length 2, bit0..1 */			(int)0			/* Value is 2 for EINT0. */			);	mask32_change_bsp(			(int*)0x56000088,	/* EXTINT0 of s3c2410x */			(int)0,			/* start bit0 */			(int)3,			/* change length 3, bit0..2 */			(int)4			/* Value is 4, that rise edge triggered for EINT0. *//*			(int)1			 Value is 1, that high level triggered for EINT0. */			);	mask32_change_bsp(			(int*)0x56000058,	/* GPFUP of s3c2410x */			(int)0,			/* start bit0 */			(int)1,			/* change length 1, bit0 */			(int)1			/* Value is 1 for disable EINT0's pull-up. */			);	mask32_change_bsp(			(int*)0x56000050,	/* GPFCON of s3c2410x */			(int)0,			/* start bit0 */			(int)2,			/* change length 2, bit0..1 */			(int)2			/* Value is 2 for EINT0. */			);	return 0;}/* * cs8900a_pin_disable - Disable the pin for the interrupt of cs8900a. *  * RETURNS: status(int). */int cs8900a_pin_disable(void){	mask32_change_bsp(			(int*)0x56000050,	/* GPFCON of s3c2410x */			(int)0,			/* start bit0 */			(int)2,			/* change length 2, bit0..1 */			(int)0			/* Value is 0 for input. */			);	mask32_change_bsp(			(int*)0x56000088,	/* EXTINT0 of s3c2410x */			(int)0,			/* start bit0 */			(int)3,			/* change length 3, bit0..2 */			(int)0			/* Value is 4, that low level triggered for EINT0. */			);	return 0;}/* * cs_pp_r - reads a word from the PacketPage * * This routine reads a word from the PacketPage at the specified offset. * * RETURNS: a word in the offset */USHORT cs_pp_r(END_DEVICE * pDrvCtrl, USHORT offset){	volatile USHORT temp_ushort = 0;	if(pDrvCtrl->in_memory_mode == TRUE)	{		/* in memory mode */		temp_ushort = *((volatile USHORT *)((pDrvCtrl->mem_addr) + CS_CHIP_MEM_BASE + offset));		return temp_ushort;	}	else	{		/* in io mode */		*((volatile USHORT *)((pDrvCtrl->io_addr) + CS_CHIP_IO_BASE + CS_PORT_PKTPG_PTR)) = offset;		temp_ushort = *((volatile USHORT *)((pDrvCtrl->io_addr) + CS_CHIP_IO_BASE + CS_PORT_PKTPG_DATA));		return temp_ushort;	}}/* * cs_pp_w - writes a value to the PacketPage * * This routine writes a value to the PacketPage at the specified offset. * * RETURNS: N/A */void cs_pp_w(END_DEVICE * pDrvCtrl, USHORT offset, USHORT value){	if(pDrvCtrl->in_memory_mode == TRUE)	{		/* in memory mode */		*((volatile USHORT *)((pDrvCtrl->mem_addr) + CS_CHIP_MEM_BASE + offset)) = value;	}	else	{		/* in io mode */		*((volatile USHORT *)((pDrvCtrl->io_addr) + CS_CHIP_IO_BASE + CS_PORT_PKTPG_PTR)) = offset;		*((volatile USHORT *)((pDrvCtrl->io_addr) + CS_CHIP_IO_BASE + CS_PORT_PKTPG_DATA)) = value;	}	return;}/* add by phoenix */STATUS mask32_change_bsp(int* dist32, int num, int len, int src){	UINT32 tempUINT32;	tempUINT32 = *dist32;	if(len <= 0) return ERROR;	if((num+len) > 32) return ERROR;	tempUINT32 = ((tempUINT32&(~(((1<<len)-1)<<num)))|((src&((1<<len)-1))<<num));	*dist32 = tempUINT32;	return OK;}/* cs_chip_rx_frame_drop - delete some receive frame. */void cs_chip_rx_frame_drop(END_DEVICE * pDrvCtrl, int num){	while(num--)	{		cs_pp_w(pDrvCtrl,CS_PKTPG_RX_CFG,			((cs_pp_r(pDrvCtrl,CS_PKTPG_RX_CFG)) | CS_RX_CFG_SKIP));	}	return;}/* cs_generate_interrupt - generate a software interrupt for test. */void cs_chip_generate_interrupt(END_DEVICE* pDrvCtrl){	cs_pp_w(pDrvCtrl,CS_PKTPG_BUF_CFG,		((cs_pp_r(pDrvCtrl,CS_PKTPG_BUF_CFG)) | CS_BUF_CFG_SW_INT));	return;}/* cs_get_rx_miss_num - get the miss number of receive frames. */int cs_chip_get_rx_miss_num(END_DEVICE* pDrvCtrl){	int temp_int;	temp_int = cs_pp_r(pDrvCtrl,CS_PKTPG_RX_MISS);	temp_int = (temp_int >> 6) & 0x03ff;	return temp_int;}/* cs_get_tx_col_num - get the collision number of transmit frames. */int cs_chip_get_tx_col_num(END_DEVICE* pDrvCtrl){	int temp_int;	temp_int = cs_pp_r(pDrvCtrl,CS_PKTPG_TX_COL);	temp_int = (temp_int >> 6) & 0x03ff;	return temp_int;}/* cs_chip_to_mem_mode - set the cs to memory mode. */STATUS cs_chip_to_mem_mode(END_DEVICE* pDrvCtrl, int flag){	pDrvCtrl->in_memory_mode = FALSE;	if(flag)	{		cs_pp_w(pDrvCtrl, CS_PKTPG_BUS_CTL,			cs_pp_r(pDrvCtrl, CS_PKTPG_BUS_CTL) | CS_BUS_CTL_MEM_MODE);		pDrvCtrl->in_memory_mode = TRUE;	}	else	{		cs_pp_w(pDrvCtrl, CS_PKTPG_BUS_CTL,			cs_pp_r(pDrvCtrl, CS_PKTPG_BUS_CTL) & (~CS_BUS_CTL_MEM_MODE));		pDrvCtrl->in_memory_mode = FALSE;	}	return OK;}/* cs_chip_self_reset - cs chip reset by software command. */STATUS cs_chip_self_reset(END_DEVICE* pDrvCtrl){	const int reset_time = 5;	int wait_count = 0;	/* do reset. */	cs_pp_w(pDrvCtrl, CS_PKTPG_SELF_CTL,			cs_pp_r(pDrvCtrl, CS_PKTPG_SELF_CTL) | CS_SELF_CTL_RESET);	/* wait for reset finish. */	while(!(cs_pp_r(pDrvCtrl, CS_PKTPG_SELF_ST) & CS_SELF_ST_INIT_DONE))	{		taskDelay(reset_time);		if((wait_count++) >= CS_MAXLOOP) return ERROR;	}	return OK;}/* cs_chip_int_enable - interrupt enable for cs chip. */STATUS cs_chip_int_enable(END_DEVICE *	pDrvCtrl){	/* set the master interrupt enable bit in cs chip. 0x0116 = 0x8017*/	cs_pp_w(pDrvCtrl,		CS_PKTPG_BUS_CTL, (cs_pp_r(pDrvCtrl, CS_PKTPG_BUS_CTL)) | CS_BUS_CTL_INT_ENBL);	return OK;}/* cs_chip_event_enable - interrupt enable for cs chip. */STATUS cs_chip_event_enable(END_DEVICE * pDrvCtrl){	/* enable > data, < data, CRC_err, and Rx_OK interrupt. 0x0102 = 0x7103*/	cs_pp_w(pDrvCtrl,		CS_PKTPG_RX_CFG, (cs_pp_r(pDrvCtrl, CS_PKTPG_RX_CFG)) | CS_RX_CFG_ALL_IE);	/* enable all of the tx interrupt. 0x0106 = 0x8fc7*/	cs_pp_w(pDrvCtrl, CS_PKTPG_TX_CFG, CS_TX_CFG_ALL_IE);	/* enable Rx miss and Tx underrun interrupt. 0x010a = 0x070b*/	cs_pp_w(pDrvCtrl, CS_PKTPG_BUF_CFG,		CS_BUF_CFG_RX_MISS_IE | CS_BUF_CFG_TX_UNDR_IE | CS_BUF_CFG_RDY4TX_IE);	return OK;}/* cs_chip_int_disable - interrupt disable for cs chip. */STATUS cs_chip_int_disable(END_DEVICE *	pDrvCtrl){	/* clear the master interrupt enable bit in cs chip. */	cs_pp_w(pDrvCtrl,		CS_PKTPG_BUS_CTL, (cs_pp_r(pDrvCtrl, CS_PKTPG_BUS_CTL)) & (~CS_BUS_CTL_INT_ENBL));	return OK;}/* cs_chip_event_disable - interrupt disable for cs chip. */STATUS cs_chip_event_disable(END_DEVICE * pDrvCtrl){	/* disable all of Rx interrupt. 0x0102 = ~0x7103*/	cs_pp_w(pDrvCtrl,		CS_PKTPG_RX_CFG, (cs_pp_r(pDrvCtrl, CS_PKTPG_RX_CFG)) & (~CS_RX_CFG_ALL_IE));	/* disable all of Tx interrupt. 0x0106 = 0x0007*/	cs_pp_w(pDrvCtrl, CS_PKTPG_TX_CFG, 0);	/* disable buffer interrupt. 0x010a = 0x0013*/	cs_pp_w(pDrvCtrl, CS_PKTPG_BUF_CFG, 0);	return OK;}/* cs_chip_select_rx_frame_type - select the receiver frame type. */STATUS cs_chip_select_rx_frame_type(END_DEVICE * pDrvCtrl,USHORT type_mask,int val){	/* clear this bit. */	if(val == 0)	{		cs_pp_w(pDrvCtrl,			CS_PKTPG_RX_CTL, (cs_pp_r(pDrvCtrl, CS_PKTPG_RX_CTL)) & (~type_mask));		return OK;	}	/* set this bit. */	if(val == 1)	{		cs_pp_w(pDrvCtrl,			CS_PKTPG_RX_CTL, (cs_pp_r(pDrvCtrl, CS_PKTPG_RX_CTL)) | type_mask);		return OK;	}	return ERROR;}/* cs_chip_loop_set - on or off cs chip loop. */STATUS cs_chip_loop_set(END_DEVICE * pDrvCtrl, int val){	if(val == 1)	{		cs_chip_set_full_duplex(pDrvCtrl, 1);		cs_pp_w(pDrvCtrl,			CS_PKTPG_TEST_CTL, (cs_pp_r(pDrvCtrl, CS_PKTPG_TEST_CTL))			| CS_TEST_CTL_ENDEC_LP | CS_TEST_CTL_FDX);		return OK;	}	if(val == 0)	{		cs_pp_w(pDrvCtrl,			CS_PKTPG_TEST_CTL, (cs_pp_r(pDrvCtrl, CS_PKTPG_TEST_CTL)) & (~CS_TEST_CTL_ENDEC_LP));		return OK;	}	return ERROR;}/* cs_chip_set_full_duplex - set cs rx/tx mode to full duplex or half duplex. */STATUS cs_chip_set_full_duplex(END_DEVICE * pDrvCtrl, int val){	if(val == 1)	{		cs_pp_w(pDrvCtrl,				CS_PKTPG_TEST_CTL, (cs_pp_r(pDrvCtrl, CS_PKTPG_TEST_CTL)) | CS_TEST_CTL_FDX);		return OK;	}	if(val == 0)	{		cs_pp_w(pDrvCtrl,				CS_PKTPG_TEST_CTL, (cs_pp_r(pDrvCtrl, CS_PKTPG_TEST_CTL)) & (~CS_TEST_CTL_FDX));		return OK;	}	return ERROR;}/* cs_chip_set_link_dep - set cs run depend on link or independ. */STATUS cs_chip_set_link_dep(END_DEVICE * pDrvCtrl, int val){	if(val == 1)	{		cs_pp_w(pDrvCtrl,				CS_PKTPG_TEST_CTL, (cs_pp_r(pDrvCtrl, CS_PKTPG_TEST_CTL)) | CS_TEST_CTL_DIS_LT);		return OK;	}	if(val == 0)	{		cs_pp_w(pDrvCtrl,				CS_PKTPG_TEST_CTL, (cs_pp_r(pDrvCtrl, CS_PKTPG_TEST_CTL)) & (~CS_TEST_CTL_DIS_LT));		return OK;	}	return ERROR;}/* cs_chip_tx_force_terminate - force terminate tx frame for cs chip. */STATUS cs_chip_tx_force_terminate(END_DEVICE * pDrvCtrl,int val){	if(val == 1)	{		cs_pp_w(pDrvCtrl,				CS_PKTPG_TX_CMD, (cs_pp_r(pDrvCtrl, CS_PKTPG_TX_CMD)) | CS_TX_CMD_FORCE);		return OK;	}	if(val == 0)	{		cs_pp_w(pDrvCtrl,				CS_PKTPG_TX_CMD, (cs_pp_r(pDrvCtrl, CS_PKTPG_TX_CMD)) & (~CS_TX_CMD_FORCE));		return OK;	}	return ERROR;}/* cs_chip_set_tx_crc - on or off tx CRC. */STATUS cs_chip_set_tx_crc(END_DEVICE * pDrvCtrl, int val){	if(val == 0)	{		cs_pp_w(pDrvCtrl,				CS_PKTPG_TX_CMD, (cs_pp_r(pDrvCtrl, CS_PKTPG_TX_CMD)) | CS_TX_CMD_NO_CRC);		return OK;	}	if(val == 1)	{		cs_pp_w(pDrvCtrl,				CS_PKTPG_TX_CMD, (cs_pp_r(pDrvCtrl, CS_PKTPG_TX_CMD)) & (~CS_TX_CMD_NO_CRC));		return OK;	}	return ERROR;}/* cs_chip_send_frame - send one frame to cs chip. */STATUS cs_chip_send_frame(END_DEVICE * pDrvCtrl, USHORT * p_src_buf, int length){	USHORT	bus_status = 0;	int	count = 0;	int i;	unsigned char * p_src_buffer = (unsigned char *)p_src_buf;	if(length > 0)	{		/* Request that the transmit be started after all data has been copied */		*((USHORT *)(CS_CHIP_MEM_BASE + CS_PKTPG_TX_CMD)) = CS_TX_CMD_START_ALL;		/* TODO - initiate device transmit. */		*((USHORT *)(CS_CHIP_MEM_BASE + CS_PKTPG_TX_LENGTH)) = length;		/* Read the busStatus register which indicates success of the request */		bus_status = *((USHORT *)(CS_CHIP_MEM_BASE + CS_PKTPG_BUS_ST));		if((!(bus_status & CS_BUS_ST_TX_BID_ERR)) && (bus_status & CS_BUS_ST_RDY4TXNOW))		{			/* The chip is ready for transmission now */			/* Copy the frame to the chip to start transmission */			for(count = 0; count < length; count+=2)			{				*((USHORT *)(CS_CHIP_MEM_BASE + CS_PKTPG_TX_FRAME + count)) = p_src_buf[count/2];			}			return OK;		}		else		{			/* the chip tx buffer unuse. */			if(display_net_event)printf("Error, the tx buffer is invalid!!!\n");			return ERROR;		}	}	else	{		/* null frame. */		if(display_net_event)printf("Error, the length of tx frame less 0!!!\n");		return ERROR;	}}/* cs_soft_end_init - initialize the END_DEVICE. */STATUS cs_soft_end_init(END_DEVICE * pDrvCtrl){	pDrvCtrl->chip_dma_num = CS_INIT_DMA_NUM;	pDrvCtrl->chip_int_num = CS_INIT_INT_NUM;	pDrvCtrl->ilevel = CS_INIT_INT_NUM;	pDrvCtrl->ivec = CS_INIT_INT_NUM;	pDrvCtrl->io_addr = CS_CHIP_IO_OFFSET;	pDrvCtrl->mem_addr = CS_CHIP_MEM_OFFSET;	pDrvCtrl->enetAddr[2] = (USHORT)0x313e;	pDrvCtrl->enetAddr[1] = (USHORT)0xa5e6;	pDrvCtrl->enetAddr[0] = (USHORT)0x0a00;	pDrvCtrl->media_type = CS_MEDIA_10BASET;	pDrvCtrl->in_memory_mode = FALSE;	pDrvCtrl->resetting = FALSE;	return OK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一区二区三区视频| 午夜精品福利视频网站| 精品欧美一区二区久久| 51午夜精品国产| 欧美精品色综合| 欧美日韩在线不卡| 91精品婷婷国产综合久久性色| 欧美在线短视频| 日韩一卡二卡三卡| 精品少妇一区二区三区在线播放| 精品欧美一区二区久久| 中文字幕免费不卡在线| 最近中文字幕一区二区三区| 伊人性伊人情综合网| 亚洲成a天堂v人片| 蜜桃av一区二区三区电影| 国内成+人亚洲+欧美+综合在线| 精品一二三四在线| 成人黄色综合网站| 欧美日韩一区中文字幕| 日韩欧美国产一二三区| 久久久亚洲精品石原莉奈| 国产精品传媒入口麻豆| 一区二区在线观看视频| 午夜激情久久久| 午夜精品成人在线| 国产精品一二二区| 一本久久精品一区二区| 欧美挠脚心视频网站| 国产精品无码永久免费888| 亚洲乱码日产精品bd| 日本三级亚洲精品| 国产成人啪免费观看软件| 一本大道综合伊人精品热热| 69精品人人人人| 国产日韩欧美精品电影三级在线| 国产精品久久精品日日| 日精品一区二区三区| 成人av在线网| 日韩欧美自拍偷拍| 综合分类小说区另类春色亚洲小说欧美 | **欧美大码日韩| 午夜久久久久久| 懂色一区二区三区免费观看| 欧美日韩国产首页| 中文字幕精品三区| 青娱乐精品视频| 91丝袜高跟美女视频| 久久无码av三级| 欧美aaaaaa午夜精品| 日本福利一区二区| 国产精品网站导航| 美腿丝袜在线亚洲一区 | 夜夜嗨av一区二区三区中文字幕| 日本不卡在线视频| 色视频成人在线观看免| 国产区在线观看成人精品| 日韩av网站在线观看| 欧美色倩网站大全免费| 亚洲少妇30p| 成人激情免费视频| 久久先锋影音av鲁色资源网| 日韩有码一区二区三区| 欧美日韩在线播放一区| 亚洲色图视频免费播放| 国产不卡高清在线观看视频| 日韩精品一区二区三区在线播放 | 4438x成人网最大色成网站| 亚洲欧美日韩小说| 成人精品免费看| 国产精品美女久久久久高潮| 国产精品88av| 国产喷白浆一区二区三区| 国产麻豆精品在线| 国产日产欧美一区二区视频| 懂色av一区二区夜夜嗨| 国产日韩欧美激情| 成人白浆超碰人人人人| 成人欧美一区二区三区在线播放| 成人一区二区在线观看| 国产精品国产成人国产三级| 97久久精品人人做人人爽| 亚洲精品亚洲人成人网在线播放| 色综合天天综合网天天看片| 亚洲成人免费看| 欧美日韩一区二区在线视频| 一区二区在线观看免费视频播放| 色婷婷激情久久| 一区二区三区不卡视频在线观看| 91麻豆swag| 亚洲一区二区三区激情| 91麻豆精品91久久久久同性| 另类小说综合欧美亚洲| 久久久久综合网| 成a人片国产精品| 亚洲精品视频在线| 日韩一区二区三区四区 | 国产精品美女久久久久av爽李琼| 成人h精品动漫一区二区三区| 一区二区三区在线影院| 日韩欧美一区二区在线视频| 国产一区视频网站| 亚洲区小说区图片区qvod| 51精品国自产在线| 波多野结衣中文字幕一区二区三区| 夜夜精品浪潮av一区二区三区| 69久久夜色精品国产69蝌蚪网| 国产乱一区二区| 亚洲一级片在线观看| 久久综合精品国产一区二区三区| 成人久久久精品乱码一区二区三区| 亚洲第一av色| 亚洲国产精品高清| 欧美精三区欧美精三区| 福利一区二区在线观看| 午夜视频久久久久久| 国产女人18水真多18精品一级做| 在线免费观看日韩欧美| 国精产品一区一区三区mba视频| 亚洲欧美在线视频| 久久综合久久鬼色| 欧美日韩午夜在线视频| 成人av在线看| 国内精品伊人久久久久av一坑| 亚洲精品美国一| 中文字幕成人av| 欧美zozozo| 欧美电影影音先锋| 色婷婷激情久久| 不卡的av电影| 国产99久久久国产精品潘金| 奇米影视在线99精品| 一区二区三区在线影院| 国产精品麻豆网站| 精品粉嫩超白一线天av| 日韩一区二区不卡| 91 com成人网| 6080日韩午夜伦伦午夜伦| 91女厕偷拍女厕偷拍高清| 成人a免费在线看| 国产成人小视频| 国内精品第一页| 麻豆91免费看| 免费成人av在线| 青青草精品视频| 美女脱光内衣内裤视频久久网站| 亚洲成a人在线观看| 亚洲国产一区二区三区| 综合久久给合久久狠狠狠97色| 国产精品丝袜黑色高跟| 国产拍揄自揄精品视频麻豆| 国产网站一区二区三区| 2020国产成人综合网| 精品精品国产高清a毛片牛牛| 7777精品久久久大香线蕉| 欧美一级欧美三级在线观看| 3751色影院一区二区三区| 欧美日韩精品免费| 欧美日本一区二区| 欧美顶级少妇做爰| 精品国产乱子伦一区| 欧美激情一区二区在线| 欧美国产精品专区| 亚洲精品美国一| 亚洲第一精品在线| 日本不卡高清视频| 久久成人久久爱| 成人app在线观看| 在线一区二区三区做爰视频网站| 欧洲一区在线电影| 欧美一区二区三区在线看| 欧美电影精品一区二区| 久久精品水蜜桃av综合天堂| 亚洲欧美怡红院| 青青青爽久久午夜综合久久午夜 | 国产亚洲精品免费| 亚洲欧洲中文日韩久久av乱码| 亚洲国产视频a| 老司机免费视频一区二区 | 在线观看av一区| 日韩色视频在线观看| 国产精品日韩成人| 亚洲777理论| 狠狠v欧美v日韩v亚洲ⅴ| 99久久精品国产网站| 欧美绝品在线观看成人午夜影视| 久久色成人在线| 亚洲一级电影视频| 国产尤物一区二区| 欧美午夜在线一二页| 久久久久九九视频| 夜夜嗨av一区二区三区四季av | 国产精品理伦片| 人人超碰91尤物精品国产| 国产成人啪午夜精品网站男同| 色播五月激情综合网| 久久众筹精品私拍模特| 午夜精品aaa| 成人av电影观看| 久久伊人蜜桃av一区二区|