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

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

?? cs8900_linux.c

?? MBA2440(s3c2440)的 源代碼文件 ARM920T內核。
?? C
字號:
/*************************************************************************//*                                                                       *//* FILE			CS8900.C                                                 *//*                                                                       *//* FUNCTION		CS8900 TEST ROUTINE                                      *//*                                                                       *//* DESCRIPTION                                                           *//*                                                                       *//* 		This is a CS8900 program for M300 system with samsung S3C2410.   *//*                                                                       *//* DEPENDENCIES                                                          *//*                                                                       *//* EDITED BY                                                             *//* 		sjjo	Initialize                                               *//*                                                                       *//* Copyright (C) 1998-2005 AIJISYSTEM CO.,LTD.                           *//*************************************************************************/#include <stdarg.h>#include <string.h>#include <stdlib.h>#include <stdio.h>#include <ctype.h>#include "def.h"#include "option.h"//#include "s3c2410.h"#include "2440lib.h"#include "2440slib.h" #include "cs8900.h"//#include <net.h>#undef ETH_DEBUGvoid * Items_CS8900[][2]={    (void *)Get_CS8900_ID,	"Get_CS8900_ID     ",    0,0};/*************************************************************************//* CS8900 Test Routine for M300                                          *//*************************************************************************/void TEST_CS8900(void){	while(1)    {		int i=0;				Uart_Printf("\n\n");        Uart_Printf("$$$$$$$$$$$$$$$$$$$$$$$$$$\n");        Uart_Printf("$                        $\n");        Uart_Printf("$  CS8900 FUNCTION TEST  $\n");        Uart_Printf("$                        $\n");        Uart_Printf("$$$$$$$$$$$$$$$$$$$$$$$$$$\n");                while(1) //display menu        {               Uart_Printf("(%d) %s\n",i++,Items_CS8900[i][1]);            if((int)(Items_CS8900[i][0])==0) break;        }        Uart_Printf("(ESC) Exit and Previous\n");                Uart_Printf("\nSelect the Items to test : ");        i = Uart_GetIntNum();        Uart_Printf("\n");        if(i==0x1b) break;                if(i>=0 && (i<(sizeof(Items_CS8900)/8)) )             ( (void (*)(void)) (Items_CS8900[i][0]) )();                }}// packet page register access functionsstatic unsigned short get_reg_init_bus (int regno){	/* force 16 bit busmode */	volatile unsigned char c;#ifdef ETH_DEBUG	c = CS8900_BUS16_0;	c = CS8900_BUS16_1;	c = CS8900_BUS16_0;	c = CS8900_BUS16_1;	c = CS8900_BUS16_0;#endif	CS8900_PPTR = regno;	return (unsigned short) CS8900_PDATA;}#ifdef ETH_DEBUGstatic unsigned short get_reg (int regno){	CS8900_PPTR = regno;	return (unsigned short) CS8900_PDATA;}#endif#ifdef ETH_DEBUGstatic void put_reg (int regno, unsigned short val){	CS8900_PPTR = regno;	CS8900_PDATA = val;}#endif#ifdef ETH_DEBUGstatic void eth_reset (void){	int tmo;	unsigned short us;	/* reset NIC */	put_reg (PP_SelfCTL, get_reg (PP_SelfCTL) | PP_SelfCTL_Reset);	/* wait for 200ms */	Delay (200000);	/* Wait until the chip is reset *///	tmo = get_timer (0) + 1 * CFG_HZ;//	while ((((us = get_reg_init_bus (PP_SelfSTAT)) & PP_SelfSTAT_InitD) == 0)//		   && tmo < get_timer (0))		/*NOP*/;}#endif //ETH_DEBUG#ifdef ETH_DEBUGstatic void eth_reginit (void){	/* receive only error free packets addressed to this card */	put_reg (PP_RxCTL, PP_RxCTL_IA | PP_RxCTL_Broadcast | PP_RxCTL_RxOK);	/* do not generate any interrupts on receive operations */	put_reg (PP_RxCFG, 0);	/* do not generate any interrupts on transmit operations */	put_reg (PP_TxCFG, 0);	/* do not generate any interrupts on buffer operations */	put_reg (PP_BufCFG, 0);	/* enable transmitter/receiver mode */	put_reg (PP_LineCTL, PP_LineCTL_Rx | PP_LineCTL_Tx);}#endif //ETH_DEBUG#ifdef ETH_DEBUGvoid cs8900_get_enetaddr (U8 * addr){	int i;	unsigned char env_enetaddr[6];	/* verify chip id */	if (get_reg_init_bus (PP_ChipID) != 0x630e)		return;	eth_reset ();}#endif //ETH_DEBUG#ifdef ETH_DEBUGvoid eth_halt (void){	/* disable transmitter/receiver mode */	put_reg (PP_LineCTL, 0);	/* "shutdown" to show ChipID or kernel wouldn't find he cs8900 ... */	get_reg_init_bus (PP_ChipID);}#endif //ETH_DEBUGint eth_init (void){	/* verify chip id */	if (get_reg_init_bus (PP_ChipID) != 0x630e) {		printf ("CS8900 Ethernet chip not found?!\n");		return 0;	}#ifdef ETH_DEBUG//	eth_reset ();	/* set the ethernet address *///	put_reg (PP_IA + 0, bd->bi_enetaddr[0] | (bd->bi_enetaddr[1] << 8));//	put_reg (PP_IA + 2, bd->bi_enetaddr[2] | (bd->bi_enetaddr[3] << 8));//	put_reg (PP_IA + 4, bd->bi_enetaddr[4] | (bd->bi_enetaddr[5] << 8));//	eth_reginit ();#endif // ETH_DEBUG	return 0;}#ifdef ETH_DEBUG/* Get a data block via Ethernet */extern int eth_rx (void){	int i;	unsigned short rxlen;	unsigned short *addr;	unsigned short status;	status = get_reg (PP_RER);	if ((status & PP_RER_RxOK) == 0)		return 0;	status = CS8900_RTDATA;		/* stat */	rxlen = CS8900_RTDATA;		/* len */#ifdef DEBUG	if (rxlen > PKTSIZE_ALIGN + PKTALIGN)		printf ("packet too big!\n");#endif//	for (addr = (unsigned short *) NetRxPackets[0], i = rxlen >> 1; i > 0; i--)//		*addr++ = CS8900_RTDATA;	if (rxlen & 1)		*addr++ = CS8900_RTDATA;	/* Pass the packet up to the protocol layers. *///	NetReceive (NetRxPackets[0], rxlen);	return rxlen;}#endif //ETH_RX#ifdef ETH_DEBUG/* Send a data block via Ethernet. */extern int eth_send (volatile void *packet, int length){	volatile unsigned short *addr;	int tmo;	unsigned short s;retry:	/* initiate a transmit sequence */	CS8900_TxCMD = PP_TxCmd_TxStart_Full;	CS8900_TxLEN = length;	/* Test to see if the chip has allocated memory for the packet */	if ((get_reg (PP_BusSTAT) & PP_BusSTAT_TxRDY) == 0) {		/* Oops... this should not happen! */#ifdef ETH_DEBUG		printf ("cs: unable to send packet; retrying...\n");#endif//		for (tmo = get_timer (0) + 5 * CFG_HZ; get_timer (0) < tmo;)			/*NOP*/;		eth_reset ();		eth_reginit ();		goto retry;	}	/* Write the contents of the packet */	/* assume even number of bytes */	for (addr = packet; length > 0; length -= 2)		CS8900_RTDATA = *addr++;	/* wait for transfer to succeed *///	tmo = get_timer (0) + 5 * CFG_HZ;	while ((s = get_reg (PP_TER) & ~0x1F) == 0) {//		if (get_timer (0) >= tmo)			break;	}	/* nothing */ ;	if ((s & (PP_TER_CRS | PP_TER_TxOK)) != PP_TER_TxOK) {#ifdef ETH_DEBUG		printf ("\ntransmission error %#x\n", s);#endif	}	return 0;}#endif //ETH_DEBUGvoid Get_CS8900_ID(void){	unsigned short i;	i = eth_init();	Uart_Printf("ID[%x]\n",i);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
caoporn国产精品| 一区二区三区成人在线视频| 91麻豆国产精品久久| 日韩精品福利网| 中文字幕亚洲视频| 精品国产一区二区三区久久久蜜月| 老司机午夜精品99久久| 国产精品家庭影院| 久久新电视剧免费观看| 91麻豆免费观看| 国产精品一区久久久久| 美日韩一区二区| 洋洋av久久久久久久一区| 91精品国产综合久久精品app| 国产精品高潮呻吟| 日韩视频在线一区二区| k8久久久一区二区三区| 精品在线亚洲视频| 视频一区欧美日韩| 亚洲成人免费电影| 亚洲精品国产第一综合99久久| 韩国三级中文字幕hd久久精品| 欧美一区二区视频在线观看2020| 美洲天堂一区二卡三卡四卡视频| 欧美三日本三级三级在线播放| 亚洲三级在线免费观看| 久久精品欧美日韩| 日韩视频永久免费| 这里只有精品免费| 欧美一区二区在线看| 欧美精三区欧美精三区| 色视频一区二区| 色综合久久88色综合天天免费| 亚洲成人一二三| 亚洲电影中文字幕在线观看| 亚洲精品欧美在线| 亚洲免费观看高清在线观看| 日韩理论片一区二区| 国产精品久久久久久久第一福利| 国产成人综合自拍| 国产成人精品免费| 国产在线视频精品一区| 国产伦精品一区二区三区免费迷 | 国产女主播视频一区二区| 91精品国产入口在线| 欧美一级xxx| 欧美一区三区四区| 精品国产精品网麻豆系列| 欧美tickling网站挠脚心| 日韩免费福利电影在线观看| 久久综合色之久久综合| 精品国产免费一区二区三区四区 | 国产精品久久久久久久久动漫| 欧美亚洲免费在线一区| 欧美日韩免费在线视频| 日韩一区二区三区高清免费看看| 91一区二区三区在线播放| 91福利视频在线| 欧美一区永久视频免费观看| 久久久久久免费| 亚洲精品一区二区三区香蕉| 国产婷婷一区二区| 亚洲精品精品亚洲| 日韩av在线播放中文字幕| 国产在线国偷精品产拍免费yy| 国产欧美精品区一区二区三区| 51久久夜色精品国产麻豆| 日韩欧美成人午夜| 久久精品亚洲精品国产欧美| 国产精品久久久久久一区二区三区| 91精品啪在线观看国产60岁| 精品国产网站在线观看| 欧美精品一区二区久久婷婷| 国产三级一区二区| 亚洲一区二区三区四区在线观看 | 久久久久国产一区二区三区四区 | 97国产精品videossex| 在线看国产一区二区| 欧美成人激情免费网| 国产精品视频麻豆| 午夜欧美在线一二页| 国产精品一二三四五| 欧美婷婷六月丁香综合色| 日韩欧美一区二区在线视频| 国产农村妇女毛片精品久久麻豆| 成人h动漫精品一区二| 欧美疯狂性受xxxxx喷水图片| 在线观看日韩av先锋影音电影院| 成人美女视频在线看| 3d成人h动漫网站入口| 国产精品国产a| 久久精品99国产精品| 欧美三级三级三级| 国产女人18毛片水真多成人如厕 | 884aa四虎影成人精品一区| 久久精品欧美一区二区三区不卡| 日韩你懂的在线播放| 国产精品久久久久久久浪潮网站| 国产精品动漫网站| 激情小说欧美图片| 欧美性视频一区二区三区| 久久精品人人做人人爽97| 日韩成人av影视| 一本大道av一区二区在线播放| 91精品福利视频| 久久综合九色综合欧美98| 亚洲裸体xxx| 成人免费毛片aaaaa**| 精品国产免费久久| 午夜精品久久一牛影视| 91丨porny丨国产入口| 久久综合久久99| 久久精品国产第一区二区三区| 日韩专区欧美专区| 在线免费不卡视频| 中文一区在线播放| 韩日欧美一区二区三区| 日韩一区二区三免费高清| 亚洲国产精品麻豆| 色999日韩国产欧美一区二区| 欧美精品一卡两卡| 一区二区三区不卡视频| 91伊人久久大香线蕉| 中文字幕一区二| 国产sm精品调教视频网站| 久久精品亚洲一区二区三区浴池| 国产人成一区二区三区影院| 激情五月激情综合网| 精品1区2区在线观看| 久久精品72免费观看| 精品国产一二三| 色噜噜狠狠色综合中国| 中文字幕成人在线观看| 成人黄色av电影| 国产精品久久久久天堂| 国产精品一区二区三区网站| 久久免费看少妇高潮| 国产精品一品视频| 中文字幕精品在线不卡| www.在线成人| 亚洲精品国产一区二区精华液| 亚洲午夜精品17c| 欧美日韩精品二区第二页| 午夜精品一区二区三区三上悠亚| 天天色天天操综合| 在线成人免费观看| 亚洲不卡av一区二区三区| 7777精品伊人久久久大香线蕉最新版| 欧美理论电影在线| 蜜桃一区二区三区在线观看| 欧美一级二级三级蜜桃| 日韩二区三区在线观看| 欧美电影免费观看高清完整版在线 | 一区二区三区四区在线播放| 91国产免费看| 亚洲成人综合网站| 日韩亚洲欧美综合| 精品亚洲成a人| 欧美国产一区在线| 99re免费视频精品全部| 亚洲美女屁股眼交3| 91精品视频网| 国产成人免费视频精品含羞草妖精 | 欧美激情在线一区二区三区| 成人动漫视频在线| 国产精品国产三级国产aⅴ无密码| 亚洲 欧美综合在线网络| 精品免费一区二区三区| 国产伦精品一区二区三区视频青涩| 欧美日韩成人综合在线一区二区 | 欧美videos大乳护士334| 成人免费高清在线观看| 亚洲成人www| 久久久国产综合精品女国产盗摄| 五月婷婷综合激情| 国产亚洲欧美一区在线观看| 日本福利一区二区| 极品销魂美女一区二区三区| 椎名由奈av一区二区三区| 日韩一区二区在线观看| 成人国产精品免费| 日本亚洲欧美天堂免费| 国产精品萝li| 日韩女优av电影在线观看| 一本到不卡精品视频在线观看| 欧美美女一区二区在线观看| 国产精品一区在线观看乱码| 亚洲第一成年网| 欧美国产视频在线| 91精品中文字幕一区二区三区| 樱桃国产成人精品视频| 欧美va亚洲va在线观看蝴蝶网| 蜜臂av日日欢夜夜爽一区| 一区视频在线播放| 精品久久久久久久人人人人传媒 | 久久久激情视频| 欧美日本一区二区在线观看| 91玉足脚交白嫩脚丫在线播放| 亚洲私人影院在线观看| 久久免费国产精品|