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

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

?? ip.c

?? CS8900A的驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:

#include    "DSP28_Device.h"
extern	Uint16	AicRegs;
extern	Uint16  RxSuccessFlag;
extern	Uint16	TxEthnetFrameBuffer[1518/2];
extern	Uint16	RxEthnetFrameBuffer[1518/2];

const Uint16 MyMAC[] = 
{0xE002,0xA04C,0x7A7E};

const Uint16 MyIP[] =
{0xA8C0,0x0B01};

const Uint16 RemoteIP[] =
{0xA8C0,0x2801};

const Uint16 SubnetMask[] =
{0xFFFF,0x00FF};

const Uint16 GatewayIP[] = 
{0xA8C0,0x0101};

Uint16	TxBufFlag;
Uint16	bnry,curr;
Uint16 UDPUserDataLenth; 
Uint16 IpEdition;                                //IP版本
Uint16 IpServiceType;
Uint16 IpIdent;
Uint16 MyUdpPort;

Uint16 RemoteMAC[3];                             // 48 bit MAC
Uint16 RecdFrameMAC[3];
Uint16 RecdFrameIP[2];
Uint16 RecdIpFrameLenth;
Uint16 TxFrameSize;
Uint16 ARPAnswerSuccessFlag;

/**********************************************************************
**函數原型:    void  	delay_ms(uint ms_number)
**入口參數:		ms_number: 延時的毫秒數
**出口參數:		無
**返 回 值:	無      
**說    明:	延時預定的時間,延時時間與特定的處理器有關
************************************************************************/
void	Delay_MS(Uint16	 ms_number)
		{
			Uint16  i;
			Uint16  j;
			for(j = 0;j < ms_number;j++)
				for(i = 0;i < 10000;i++);
		}


/**********************************************************************
**函數原型:    void  	RST8019(void)
**入口參數:		無
**出口參數:		無
**返 回 值:	無      
**說    明:	復位8019AS
************************************************************************/

void 	RST8019(void)
		{
    		AicRegs = AicRegs | Set8019RST;
    		Led8Reg = AicRegs;			
			Delay_MS(50);
    		AicRegs = AicRegs & Clr8019RST;
    		Led8Reg = AicRegs;
		}

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


/**********************************************************************
**函數原型:     void 	Init8019()
**入口參數:		無
**出口參數:		無
**返 回 值:		無              
**說    明:		對芯片的工作寄存器進行設置,各個寄存器的用法可參考文檔和
**				絡芯片的數據手冊
************************************************************************/
void	Init8019()
		{
			Delay_MS(10);
/**********************************************************************

1.Reg00命令寄存器: CR,命令寄存器,地址偏移量00H,為一個字節
  位:  7   6   5   4   3   2   1   0 
名字: PS1 PS0 RD2 RD1 RD0 TXP STA STP 
//============================================
2.
RD2,RD1,RD0: 這3個位代表要執行的功能。
 0   0   1 : 讀網卡內存
 0   1   0 : 寫網卡內存
 0   1   1 : 發送網卡數據包
 1   *   * : 完成或結束DMA的讀寫操作
//============================================
3.TXP位置1時發送數據包,發完自動清零
//============================================
4.
STA,STP:	這兩個位用來啟動命令或停止命令
 1   0 		啟動命令
 0   1 		停止命令
//============================================
********************************************************/
			Reg00=0x21;   //使芯片處于停止模式,這時進行寄存器設置

			Delay_MS(10); //延時10毫秒,確保芯片進入停止模式
			page(0);
			Reg0a=0x00;   //清rbcr0
			Reg0b=0x00;   //清rbcr1
			Reg0c= 0xee;  //RCR,監視模式,不接收數據包          
			Reg0d= 0xe2;  //TCR,loop back模式

			Reg01=0x4c;
			Reg02=0x80;
			Reg03=0x4c;
			Reg04=0x40;  //TPSR,發送起始頁寄存器
			Reg07=0xff;  //清除所有中斷標志位,中斷狀態寄存器
			Reg0f=0x00;  //中斷屏蔽寄存器清0,禁止中斷

			Reg0e=0xC9;  // 數據配置寄存器,16位dma方式
			page(1);
			Reg07=0x4d;
			Reg08=0x00;
			Reg09=0x00;
			Reg0a=0x00;
			Reg0b=0x00;
			Reg0c=0x00;
			Reg0d=0x00;
			Reg0e=0x00;
			Reg0f=0x00;
			Reg00=0x22;  //這時讓芯片開始工作

    		Reg01=0x02;
    		Reg02=0xE0;
    		Reg03=0x4C;
    		Reg04=0xA0;
    		Reg05=0x7E;
    		Reg06=0x7A;

			page(0);
			Reg0c=0xde;  //將芯片設置成正常模式,跟外部網絡連接
			Reg0d=0xe0;
			Reg00=0x22;  //啟動芯片開始工作
//-----------------------------------
			Reg07=0xff;  //清除所有中斷標志位
		}

Uint16 CalcCheckSum(Uint16 *Start, Uint16 Count, Uint16 IsTCP, Uint16 IsUDP)
{
    Uint32 Sum;
  
    Sum = 0;
    if ((IsTCP)||(IsUDP)) 
    {
        Sum += MyIP[0];
        Sum += MyIP[1];
        Sum += RemoteIP[0];
        Sum += RemoteIP[1];
        Sum += SwapWord(Count*2);
        if(IsTCP)
             Sum += SwapWord(PROTOCOL_TCP);
        else
             Sum += SwapWord(PROTOCOL_UDP);
    }
    while (Count > 0) 
    {
        Sum += *Start;
        Start ++;
        Count --;
    }
    Sum = (Sum & 0xFFFF) + ((Sum >> 16)&0xFFFF);
    if(Sum&0xFFFF0000)
        Sum++;
    return((Uint16)((~Sum)&0xFFFF));
}


//=============================================================================
/**********************************************************************
**函數原型:    void 		SendFrame(Uint16 *TxdNetBuff,Uint16  length)
**入口參數:		Uint16    	*TxdNetBuff	:指向發送緩沖區
**              uint length					:發送數據包的長度
**出口參數:		無
**返 回 值:	無              
**說    明:	發送數據包,以太網底層驅動程序,所有的數據發送都要通過該程序
************************************************************************/
void	SendFrame(Uint16 *TxdNetBuff,Uint16 length)
		{
			Uint16	i,ii;
		   	if(length<46/2)
       			{
          			for(i=length;i<60/2;i++)	TxEthnetFrameBuffer[i]=0;
          			length=60/2;
       			}
			
			page(0);						//切換至第0頁
			length = length <<1;
			TxBufFlag=!TxBufFlag;			//設置兩個發緩區,提高發送效率
			if(TxBufFlag)
				{Reg09=0x40 ;}				//設置發送頁地址
			else
				{Reg09=0x46 ;}				//設置發送頁地址
    
			Reg08=0x00; 					//read page address low
			Reg0b = length >>8;				//寫發送長度高位
			Reg0a = length & 0x00ff;        //寫發送長度低位  
			Reg00=0x12;						//write dma, page0

			for(i=0;i<length/2;i++)
				{
					Reg10 = TxEthnetFrameBuffer[i];
   				}
/***************************************/
//以下為終止DMA操作
			Reg0b=0x00; 
			Reg0a=0x00;
			Reg00=0x22;			//結束或放棄DMA操作
/***************************************/

			for(i=0;i<6;i++)	//最多重發6次
				{
					for(ii=0;ii<1000;ii++)
    					{//檢查CR寄存器的txp位是否為低,為1說明正在發送,為0說明發完或出錯放棄
        					if((Reg00&0x04)==0)  
        						{ break; }
        				}
					if((Reg04&0x01)!=0)//表示發送成功,判斷發送狀態寄存器TSR,決定是否出錯
						{break;};
					Reg00=0x3e;
				}

			Reg07=0xff;
			if(TxBufFlag)
				{
  					Reg04=0x40;   //txd packet start;
  				}
			else
				{
     				Reg04=0x46;  //txd packet start;
    			}
			Reg06=length>>8;  //high byte counter
			Reg05=length&0xff;//low byte counter
			Reg07=0xff;
			Reg00=0x3e;       //to sendpacket;
	}

/**********************************************************************
**函數原型:    Uint16        Rec_NewPacket()
**入口參數:		無
**出口參數:		無
**返 回 值:	0          沒有新數據包
**              1          接收到新數據包
**說    明:	查詢是否有新數據包并接收進緩沖區
************************************************************************/
Uint16	RecFrame()
		{
			Uint16	i,ii;
			Uint16	Temp,length;
			union{
					Uint16	total;	
					struct{
							Uint16	high:8;
							Uint16	low:8;
						  }e;
				 }d;
				 		  		
			page(0);
			bnry = Reg03;				//bnry page have read 讀頁指針
			bnry = bnry & 0x00FF;
			page(1);
			curr = Reg07;				//curr writepoint 8019寫頁指針
			curr = curr & 0x00FF;
			page(0);
			if((curr==0))return(0);	//讀的過程出錯
			bnry++;
			if(bnry>0x7f)	bnry=0x4c;
			if(bnry!=curr)			//此時表示有新的數據包在緩沖區里
    			{					//在任何操作都最好返回page0
     				page(0);
     //=======================================
     				Reg09=bnry;		//讀頁地址的高字節
     				Reg08=0x00; 	//讀頁地址的低字節
     				Reg0b=0x00;		//讀取字節計數高字節
     				Reg0a=18;       //讀取字節計數高字節
     				Reg00=0x0a;     //啟動Remote DMA讀操作
	 
	 
     				for(i=0;i<9;i++)	//讀取一包的前18個字節:4字節的8019頭部,6字節目的地址,6字節原地址,2字節協議
                    	{
                       		RxEthnetFrameBuffer[i]=Reg10;
                      	}
 //=======================================中止DMA操作
     				Reg0b=0x00;	//
     				Reg0a=0x00;	//
     				Reg00=0x22;	//結束或放棄DMA操作
 //=======================================
					
					d.total = RxEthnetFrameBuffer[0];
					length = RxEthnetFrameBuffer[1];
     				if(((d.e.high & 0x01)==0)||(d.e.low > 0x7f) || (d.e.low < 0x4c)||( length > 1517))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉久久一区二区不卡无毒影院| 欧美日韩精品欧美日韩精品| 亚洲va欧美va人人爽午夜| 久久久噜噜噜久噜久久综合| 欧美一区二区视频在线观看| 91美女福利视频| av一区二区不卡| 高清不卡在线观看av| 美女视频黄频大全不卡视频在线播放| 日韩精品一区二区三区在线播放 | 日韩精品一卡二卡三卡四卡无卡| 欧美丝袜自拍制服另类| 97aⅴ精品视频一二三区| 成人网在线播放| 成人免费毛片aaaaa**| 成人自拍视频在线| 国产一区二区视频在线播放| 国内精品久久久久影院色| 狠狠色狠狠色综合日日91app| 精品国产乱码久久久久久蜜臀| 成人网男人的天堂| 99re热视频精品| 色婷婷综合五月| 在线观看亚洲成人| 欧美三级三级三级爽爽爽| 色综合网站在线| 色av成人天堂桃色av| 日本久久精品电影| 欧美日本在线观看| 欧美一区二区大片| 国产欧美一区二区精品仙草咪| 欧洲精品中文字幕| 欧美日韩在线不卡| 欧美videofree性高清杂交| 久久久国产精华| 国产精品无圣光一区二区| 亚洲人成影院在线观看| 天天影视涩香欲综合网| 久久国产生活片100| 丁香天五香天堂综合| 色婷婷亚洲婷婷| 777欧美精品| 国产欧美日韩卡一| 一区二区欧美国产| 久久99精品国产.久久久久| 国产成人av一区二区三区在线观看| 五月天婷婷综合| 国产精品一区二区在线看| 99久免费精品视频在线观看| 欧美久久久久久久久久| 国产欧美精品国产国产专区 | 亚洲视频图片小说| 久久国产尿小便嘘嘘尿| 99精品欧美一区| 日韩精品资源二区在线| 中文字幕一区二区三区四区不卡 | 六月丁香婷婷久久| 成人免费av网站| 欧美一二三在线| 亚洲丝袜制服诱惑| 国产一区二区导航在线播放| 色94色欧美sute亚洲线路一ni | 欧美综合一区二区| 日韩精品一区在线观看| 亚洲欧美日韩一区二区| 国模无码大尺度一区二区三区| 另类的小说在线视频另类成人小视频在线| 一区二区三区日韩欧美精品| 激情图区综合网| 7777精品伊人久久久大香线蕉的 | 欧美丰满少妇xxxxx高潮对白| 在线观看一区二区视频| 亚洲国产成人午夜在线一区| 日韩电影免费在线观看网站| 99久久久精品免费观看国产蜜| 成人激情av网| 久久只精品国产| 天堂一区二区在线| 在线这里只有精品| 亚洲欧洲日韩一区二区三区| 国产一区二区三区国产| 欧美大白屁股肥臀xxxxxx| 亚洲精品国久久99热| 成人黄色小视频| 日本一区二区三区在线观看| 国产最新精品免费| 精品国产百合女同互慰| 日韩在线一二三区| 欧美精品一二三四| 亚洲福利视频一区| 欧美日韩综合在线| 亚洲综合视频在线| 欧美怡红院视频| 亚洲一区二区三区四区在线| 欧美综合视频在线观看| 亚洲国产中文字幕| 欧美乱妇15p| 免费在线观看一区二区三区| 欧美男生操女生| 天天综合日日夜夜精品| 7777精品伊人久久久大香线蕉完整版 | 国产日韩成人精品| 成人免费高清在线| 中文字幕一区av| 91论坛在线播放| 一级特黄大欧美久久久| 欧美亚洲禁片免费| 日本成人在线网站| 日韩视频一区二区在线观看| 久久99久久久久| 欧美激情一二三区| 色婷婷亚洲综合| 一区二区三区精品视频在线| 欧美日韩国产综合久久 | 欧美日韩精品是欧美日韩精品| 日韩女优电影在线观看| 午夜亚洲福利老司机| 欧美一级久久久久久久大片| 国产一区二区三区av电影 | 日韩av一级电影| 欧美一激情一区二区三区| 国产一区二区三区蝌蚪| 中文字幕欧美国产| 色久优优欧美色久优优| 日韩成人免费在线| 国产亚洲一区二区三区在线观看| 亚洲在线视频网站| 欧美成人艳星乳罩| 99re这里都是精品| 青青草原综合久久大伊人精品| 99久久精品国产观看| 日韩中文字幕av电影| 中文字幕av资源一区| 91丝袜国产在线播放| 日韩激情中文字幕| 综合欧美亚洲日本| 日韩欧美不卡在线观看视频| www.欧美.com| 男女男精品视频网| 亚洲人xxxx| 国产亚洲一区字幕| 7777精品久久久大香线蕉 | 国产一区二区三区精品视频| 亚洲精品视频在线看| 欧美大片拔萝卜| 91福利社在线观看| 久久99久久精品| 亚洲国产综合91精品麻豆| 久久久不卡影院| 这里只有精品电影| 一本色道亚洲精品aⅴ| 国产一区二区调教| 亚洲777理论| 国产精品国产馆在线真实露脸| 国产成人h网站| 日本不卡一二三| 一区二区成人在线观看| 国产精品全国免费观看高清| 日韩免费高清电影| 91精品国产综合久久精品性色| 日本欧美一区二区| 亚洲精品国产品国语在线app| 欧美影视一区在线| 色噜噜久久综合| 97精品国产露脸对白| 久久se精品一区精品二区| 午夜久久久影院| 亚洲超碰97人人做人人爱| 专区另类欧美日韩| 亚洲欧洲国产日本综合| 国产亚洲精品aa| 久久精品一区四区| 欧美成人精品高清在线播放 | 国产视频一区二区在线| 精品免费99久久| 精品国产三级电影在线观看| 日韩一卡二卡三卡| 欧美成人三级在线| 精品国产91久久久久久久妲己| 成人免费av在线| 成人99免费视频| 91麻豆精品一区二区三区| 99免费精品在线| 色偷偷久久一区二区三区| 日本黄色一区二区| 欧美午夜精品一区| 欧美日产国产精品| 欧美精品vⅰdeose4hd| 欧美男人的天堂一二区| 欧美喷潮久久久xxxxx| 欧美一区二区三区四区在线观看| 国产成人午夜高潮毛片| 丁香激情综合国产| 一本高清dvd不卡在线观看 | 日韩午夜激情av| 精品国产乱码久久久久久图片 | 欧美三片在线视频观看 | 亚洲影院理伦片| 日韩精品成人一区二区三区| 五月天亚洲精品|