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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rtl8019.c

?? 44b0中USB slave端程序
?? C
字號:
#include "44b0x.h"
#include "DataType.h"
#include "console.h"
#include "rtl8019.h"

static U8 SrcMacID[6]={0x00,0x0d,0x61,0xa9,0xf5,0x36};
#define ETH_FRAME_LEN 1500

#define	 Net_Addr	0x6000000

#define	RPSTART	0x4c
#define	RPSTOP	0x60
#define	SPSTART	0x40

static U8 net_start;
static U8 rBNRY;



/****************************************************************************
* 名稱:WriteToNet()
* 功能:把數(shù)據(jù)寫入RTL8019AS
* 入口參數(shù):	ADDR		寫入地址
WRITEDATA   寫入數(shù)據(jù)
* 出口參數(shù):無
****************************************************************************/

void  WriteToNet(U8 ADDR_8,U8 WRITEDATA)
{
   (*((volatile U8 *) Net_Addr+ADDR_8))=WRITEDATA;//0x83400000	 
}


/****************************************************************************
* 名稱:ReadFromNet()
* 功能:從RTL8019AS把數(shù)據(jù)讀出
* 入口參數(shù):	ADDR		讀出地址
* 出口參數(shù):	READDATA   	讀出數(shù)據(jù)
****************************************************************************/
U8  ReadFromNet(U8 ADDR_8)
{
   U8 temp;
   temp=(*((volatile U8 *) Net_Addr+ADDR_8));//0x83400000
   return (temp);
}

/**********************************************************************
**函數(shù)原型:    void  page(uchar pagenumber)
**入口參數(shù):?uchar	pagenumber: 要切換的頁
**出口參數(shù):		無
**返 回 值:	無      
**說    明:	選擇頁,可選擇0,1,2三頁,第四頁ne000兼容芯片保留 
************************************************************************/
void page(U8 pagenumber)  
{
   U8 temp;
   temp=ReadFromNet(0);//command register
   //temp=temp&0x3f;
   temp=temp&0x3B ;//注意txp位不能要
   pagenumber=pagenumber <<6;
   temp=temp | pagenumber;
   WriteToNet(0,temp);
}

/**********************************************************************
**函數(shù)原型:    void 	SetMacID()
**入口參數(shù):		*mac_ptr
**出口參數(shù):		無
**返 回 值:	無            
**說    明:	設(shè)置芯片物理地址,物理地址已經(jīng)存儲在程序空間內(nèi) 
************************************************************************/
void SetMacID(void)
{	
	page(1);
    WriteToNet(1, SrcMacID[0]);
	WriteToNet(2, SrcMacID[1]);
	WriteToNet(3, SrcMacID[2]);
	WriteToNet(4, SrcMacID[3]);
	WriteToNet(5, SrcMacID[4]);
	WriteToNet(6, SrcMacID[5]);
	page(0);
}

U8 Rst8019(void)
{
	int i;
	
	WriteToNet(0x18, 0x5a);
	i = 20000;
	while(i--);
	page(0);
	return (ReadFromNet(0x07)&0x80);
	
}

void WakeRtl8019as(void)
{
	page(3);	
	WriteToNet(0x01, 0xcf);		//set eem1-0, 11 ,enable write config register
	WriteToNet(0x06, 0x70);	//clear pwrdn, sleep mode, set led0 as led_link, led1 as led_rx	
	WriteToNet(0x01, 0x3f); 	//disable write config register
}

void InitRS8019(void)
{
	net_start = 1;
	WriteToNet(0x00, 0x21);	/* set page 0 and stop */
	WriteToNet(0x01, RPSTART);		/* set Pstart 0x4c */
	WriteToNet(0x02, RPSTOP);		/* set Pstop 0x60 */
	WriteToNet(0x03, RPSTART);	/* BNRY-> the last page has been read */	
	WriteToNet(0x04, SPSTART);		/* transmit page start register, 0x40 */
	WriteToNet(12, 0xcc);		/* set RCR 0xcc */	
	WriteToNet(13, 0xe0);		/* set TCR 0xe0 */
#ifdef	RTL8019_OP_16
	WriteToNet(14, 0xc9);		/* set DCR 0xc9, 16bit DMA */	
#else
	WriteToNet(14, 0xc8);		/* 8bit DMA */
#endif
	WriteToNet(15, 0x03);		/* set IMR 0x03 */
	WriteToNet(7, 0xff);	
	
	page(1);	
	WriteToNet(7, RPSTART+1);	
	WriteToNet(8, 0x00);
	WriteToNet(9, 0x41);
	WriteToNet(10, 0x00);
	WriteToNet(11, 0x80);
	WriteToNet(12, 0x00);
	WriteToNet(13, 0x00);
	WriteToNet(14, 0x00);
	WriteToNet(15, 0x00);
	WriteToNet(0, 0x22);	/* set page 0 and start */
	
	net_start = 0;	
	rBNRY = RPSTART;
}

int s3c44b0_eth_init(void)
{	
	U16 i;
	
	WakeRtl8019as();

	if(!Rst8019())
	{
		printf("\nRtl8019 Reset Failed!\n");
		printf("%x ", ReadFromNet(7));		
		return -1;
	}
	printf("\nRtl8019 Reset Successfully\n");		
		
	InitRS8019();
	
	i  = ReadFromNet(10);	
	i |= ReadFromNet(11)<<8;
	
	printf("The ID of the Rtl8019 is: %#4x\n",i);
	
	SetMacID();	
	return 0;			
}


int s3c44b0_eth_send(unsigned char *data, unsigned int len)
{
	static sFlag = 0;
	int i;
	U8 send_page;
	
	send_page  = SPSTART;
	send_page += (sFlag&1)?6:0;
	sFlag++;			
		
	if(len<60)	
		for(; len<60; len++)
			data[len] = 0x20;		//just for pad, any data										
	
	page(0);
	WriteToNet(0x00, 0x22);
	WriteToNet(0x08, 0);
	WriteToNet(0x09, send_page);
	WriteToNet(0x0a, len&0xff);
	WriteToNet(0x0b, len>>8);		
	WriteToNet(0x00, 0x12);
#ifdef	RTL8019_OP_16
	len += len&1;
	for(i=0; i<(len>>1); i++)
		WriteToNet(0x10, ((U16 *)data)[i]);
#else	
	for(i=0; i<len; i++)
		WriteToNet(0x10, data[i]);		// tarns to ram			
#endif		
			
    while(ReadFromNet(0x00)&4);
	WriteToNet(0x04, send_page);
	WriteToNet(0x05, len&0xff);
	WriteToNet(0x06, len>>8);
	WriteToNet(0x00, 0x1e);			// begin to send

	return 0;
}


int s3c44b0_eth_rcv(unsigned char *data, unsigned int *len)
{
	U8 RxPageBeg, RxPageEnd;
	U8 RxNextPage;
	U8 RxStatus;
	int i, RxLength;
	U16 *data_16;
	
	data_16 = (U16 *)data;
	
	page(0);
	WriteToNet(0x03, rBNRY);
	if(ReadFromNet(0x07)&1)			//接收成功
		WriteToNet(0x07, 0x1);		//清除中斷標志
	else
		return 0;
		
	page(1);
	RxPageEnd = ReadFromNet(0x07);
	page(0);

	RxPageBeg = rBNRY+1;
	if(RxPageBeg>=RPSTOP)
		RxPageBeg = RPSTART;
	WriteToNet(0x00, 0x22);
		
	//outport(RSAR0, RxPageBeg<<8);
	//outport(RBCR0, 256);
	WriteToNet(0x08, 0);
	WriteToNet(0x09, RxPageBeg);
	WriteToNet(0x0a, 4);
	WriteToNet(0x0b, 0);
	WriteToNet(0x00, 0xa);
#ifdef	RTL8019_OP_16
	RxLength   = ReadFromNet(0x10);
	RxStatus   = RxLength&0xff;
	RxNextPage = RxLength>>8;
	RxLength   = ReadFromNet(0x10);
	RxLength  += RxLength&1;
#else
	RxStatus   = ReadFromNet(0x10);
	RxNextPage = ReadFromNet(0x10);	
	RxLength   = ReadFromNet(0x10);
	RxLength  |= ReadFromNet(0x10)<<8;
#endif	
		
	if(RxLength>ETH_FRAME_LEN)
	{
		if(RxPageEnd==RPSTART)
			rBNRY = RPSTOP-1;
		else
			rBNRY = RxPageEnd-1;
		WriteToNet(0x03, rBNRY);
		return -1;
	}
	RxLength-=4;      //去掉CRC
	*len=RxLength;
	WriteToNet(0x08, 4);
	WriteToNet(0x09, RxPageBeg);
	WriteToNet(0x0a, RxLength);
	WriteToNet(0x0b, RxLength>>8);	
	WriteToNet(0x00, 0xa);
    
    
    
#ifdef	RTL8019_OP_16
	i = 2;
	data_16 -= i;
	RxLength >>= 1;
	for(; RxLength--;) {
		if(!(i&0x7f)) {
			WriteToNet(0x03, RxPageBeg);				
				RxPageBeg++;
				if(RxPageBeg>=RPSTOP)
					RxPageBeg = RPSTART;
		}
		data_16[i++] = ReadFromNet(0x10);
//		printf("%x,", data_16[i-1]);
	}	
#else
	i     = 4;
	data -= i;
	for(; RxLength--;)
	{
		if(!(i&0xff))
			{
				WriteToNet(0x03, RxPageBeg);				
				RxPageBeg++;
				if(RxPageBeg>=RPSTOP)
					RxPageBeg = RPSTART;					
			}
		data[i++] = ReadFromNet(0x10);		
	}
#endif	
	WriteToNet(0x03, RxPageBeg);	
	rBNRY = RxPageBeg;
	
	return 1;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区精品葵司在线| 99re这里只有精品视频首页| 欧美另类z0zxhd电影| 亚洲精品国产精华液| 欧美在线观看你懂的| 亚洲成av人片一区二区三区| 欧美丰满少妇xxxxx高潮对白 | 激情综合亚洲精品| 久久久综合九色合综国产精品| 国产成人精品在线看| 亚洲人成网站影音先锋播放| 欧美日韩一区二区三区不卡| 久热成人在线视频| 国产精品毛片高清在线完整版| 91免费看片在线观看| 亚洲mv在线观看| 国产亚洲欧美在线| 色综合久久综合网欧美综合网 | 日韩精品乱码免费| 精品久久人人做人人爽| 99国产精品国产精品久久| 亚洲国产成人高清精品| 久久久久99精品国产片| 在线视频一区二区三区| 韩国三级电影一区二区| 亚洲精品一二三| 久久综合久久久久88| 色噜噜狠狠一区二区三区果冻| 麻豆精品在线播放| 中文字幕日韩一区| 日韩精品一区二区在线观看| 99久久久精品| 久久99精品国产.久久久久| 亚洲精品久久嫩草网站秘色| 欧美精品一区二区三区很污很色的 | 成人性生交大片| 偷窥少妇高潮呻吟av久久免费| 国产日韩欧美激情| 欧美日韩dvd在线观看| 成人av电影在线| 国模冰冰炮一区二区| 亚洲激情图片一区| 欧美国产一区二区在线观看| 91精品国产综合久久小美女| 97久久人人超碰| 国产一区二区剧情av在线| 婷婷夜色潮精品综合在线| 中文字幕一区二区三| 久久看人人爽人人| 欧美一区二区免费视频| 色94色欧美sute亚洲线路二 | 国产传媒一区在线| 日本成人在线不卡视频| 一区二区高清在线| 国产精品美女久久久久久2018| 欧美精品一区二区三区高清aⅴ | 欧美体内she精视频| 成人少妇影院yyyy| 国产在线一区二区| 免费成人在线影院| 日韩中文字幕91| 亚洲成在人线在线播放| 亚洲激情图片qvod| 亚洲精品日韩一| 中文字幕一区二区三区在线播放 | 91在线观看成人| 成人久久视频在线观看| 国产激情视频一区二区三区欧美 | 人禽交欧美网站| 亚洲高清免费视频| 亚洲一区二区三区爽爽爽爽爽| 亚洲人一二三区| 亚洲欧美在线另类| 亚洲欧美自拍偷拍色图| 亚洲欧美一区二区三区极速播放 | 亚洲免费高清视频在线| 亚洲欧美日韩国产手机在线| 亚洲天天做日日做天天谢日日欢| 国产精品国产三级国产aⅴ无密码| 欧美高清在线视频| 亚洲欧美在线高清| 亚洲美女免费在线| 亚洲综合免费观看高清完整版 | 欧美视频你懂的| 欧美日韩亚洲综合| 欧美一级日韩不卡播放免费| 日韩欧美一二三区| 国产喂奶挤奶一区二区三区| 欧美国产精品中文字幕| 最好看的中文字幕久久| 一区二区三区四区乱视频| 亚洲va国产天堂va久久en| 青草av.久久免费一区| 久久99精品国产.久久久久| 国产盗摄一区二区三区| jlzzjlzz亚洲日本少妇| 色美美综合视频| 欧美剧在线免费观看网站| 欧美不卡123| 中文字幕免费不卡在线| 亚洲午夜免费福利视频| 亚洲国产一区二区a毛片| 日本vs亚洲vs韩国一区三区二区| 韩国女主播成人在线| 成人免费毛片高清视频| 欧美日韩在线播放一区| 日韩视频一区二区| 国产精品福利一区二区三区| 亚洲高清不卡在线观看| 国产在线精品一区二区| 国产69精品久久99不卡| 91福利国产精品| 精品国产百合女同互慰| 一区二区三区中文在线| 蜜桃视频一区二区三区在线观看| 国产福利一区二区三区在线视频| 91精彩视频在线观看| 欧美不卡一二三| 亚洲免费观看高清完整版在线观看熊| 丝袜亚洲另类丝袜在线| av日韩在线网站| 欧美电影免费观看高清完整版| 亚洲天堂福利av| 久久精品国产秦先生| 一本一本大道香蕉久在线精品| 久久精品免视看| 日韩电影在线观看网站| av一区二区三区四区| 日韩欧美黄色影院| 亚洲一区二区三区中文字幕| 国产成人精品免费一区二区| 欧美色偷偷大香| 国产亚洲人成网站| 日韩黄色免费电影| 在线视频你懂得一区| 国产精品乱人伦中文| 男男成人高潮片免费网站| 欧美又粗又大又爽| 日韩伦理av电影| 国产九九视频一区二区三区| 91精品中文字幕一区二区三区| 曰韩精品一区二区| 99久久综合精品| 久久久噜噜噜久久中文字幕色伊伊| 亚洲大片在线观看| 日本高清视频一区二区| 亚洲视频一区二区在线| 国产91精品一区二区麻豆网站 | 久久亚洲一区二区三区四区| 石原莉奈一区二区三区在线观看| 波多野结衣视频一区| 久久精品一区二区| 国产精品自拍av| 久久久久久久久久久久久久久99 | 蜜臀精品久久久久久蜜臀| 欧美伊人久久久久久久久影院| 自拍偷拍国产亚洲| 99re这里只有精品6| 亚洲欧洲另类国产综合| 成人a区在线观看| 成人欧美一区二区三区在线播放| 懂色av一区二区夜夜嗨| 中文欧美字幕免费| 成人晚上爱看视频| 国产欧美视频一区二区| 福利视频网站一区二区三区| 欧美激情一区二区三区全黄 | 中文子幕无线码一区tr| 国产成人精品免费看| 国产日韩av一区| 成人国产精品免费观看| 亚洲人成亚洲人成在线观看图片 | 欧美色图片你懂的| 一区二区三区免费| 精品视频一区二区三区免费| 香蕉乱码成人久久天堂爱免费| 在线免费观看成人短视频| 亚洲一区二区三区四区在线| 欧美伦理电影网| 蜜桃91丨九色丨蝌蚪91桃色| 精品粉嫩aⅴ一区二区三区四区 | 99久久综合国产精品| 亚洲精选免费视频| 欧美日韩性生活| 蜜臂av日日欢夜夜爽一区| 久久久午夜精品| 色综合天天做天天爱| 午夜精品影院在线观看| 欧美日韩aaa| 国产一区二区不卡在线| 国产精品国产三级国产aⅴ原创 | 午夜不卡av免费| 欧美大肚乱孕交hd孕妇| 国产白丝网站精品污在线入口| 亚洲三级在线看| 欧美日韩亚洲综合| 国产盗摄精品一区二区三区在线| 亚洲女同女同女同女同女同69| 欧美日韩精品专区| 国产很黄免费观看久久|