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

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

?? rtl8019.c

?? 5402 McBSP源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "RTL8019a.h"
#include "string.h"
#include "common.h" 
#include "cpu_reg.h"

#define QICKREQUEST       5000

unsigned int dat_type,broad_enable,frame=0;
unsigned int scramble_ptr=0,syn_count=0;
unsigned short 	isr,send=0,nextpage;
unsigned short  curr,bnry,x1,x2,IP_id;
unsigned short  sendbuf[TALK_SIZE+40];
unsigned short  recbuf[1080/2];
unsigned int    out_wptr,out_rptr;
unsigned short  header1,header2,header3,header4,property,talk_flag;


struct ipaddr   server_ipaddr,nod_ipaddr,r_ipaddr;
struct iphdr    t_iphdr;
struct igmphdr  t_igmphdr;
struct udphdr   t_udphdr;
struct pre_udphdr  pre_udphdr1;
struct mac      MAC_server,MAC_broad,MAC_rec;
struct mac      MAC_self,MAC_nod;
struct arp      arp1;
unsigned int    member_num ;
int             member_flag=0;

extern  unsigned short IP;
extern  unsigned int DA_wptr,DA_rptr,ms;
extern  int *videobuf,*pcmbuf;
extern int request_pack,arp_ack,request_type;
extern unsigned short scramble_tab[1176];
extern int bitrate,status,request_time,req_gaptime;
extern int talkbuf[TALK_SIZE*2];
extern unsigned int  rec_pack,link_time;
extern int group_member[MEMBER_NUM];
extern int ADbuf[2][TALK_SIZE],stero_num ;
extern long sum[TALK_SIZE];
extern int  readmenup,success,request_flag,AD_rptr;
Uint16	RxEthnetFrameBuffer[1518/2];

//==============================================================================
/**********************************************************************
**函數原型:    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;
		}

Uint16	SwapByte(Uint16	value)
		{
    		Uint16	temp;
    		temp=(value<<8)|(value>>8);
    		return(temp);
		}								

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

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;   //使芯片處于停止模式,這時進行寄存器設置
//			ms = 0;
//			while(ms<100); //延時100毫秒,確保芯片進入停止模式
			delay(10000);
			page(0);
			delay(10);
			Reg0a= 0x00;   //清rbcr0
			delay(1);
			Reg0b= 0x00;   //清rbcr1
			delay(1);
			Reg0c= 0xe0;  //RCR,監視模式,不接收數據包
			delay(1);
			Reg0d= 0xe2;  //TCR,loop back模式
			delay(1);
			Reg01= 0x4c;   //pstart = 0x4c
			delay(1);
			Reg02= 0x80;   //pstop = 0x80
			delay(1);
			Reg03= 0x4c;   //bnry = 4c
			delay(1);
			Reg04= 0x40;  //TPSR,發送起始頁寄存器
			delay(1);
			Reg07= 0xff;  //清除所有中斷標志位,中斷狀態寄存器
			delay(1);
			Reg0f= 0x00;  //中斷屏蔽寄存器清0,禁止中斷
			delay(1);
			Reg0e= 0xF9;  // 數據配置寄存器,16位dma方式//////////////////////////
			delay(1);
			//Reg0e= 0xc9; 
			page(1);
			delay(10);
			Reg07= 0x4d;  //4d
			delay(1);
			Reg08= 0x00;
			delay(1);
			Reg09= 0x00;
			delay(1);
			Reg0a= 0x00;
			delay(1);
			Reg0b= 0x00;
			delay(1);
			Reg0c= 0x00;
			delay(1);
			Reg0d= 0x00;
			delay(1);
			Reg0e= 0x00;
			delay(1);
			Reg0f= 0x00;
			
    		Reg01=0x02;
    		delay(1);
    		Reg02=0xE0;
    		delay(1);
    		Reg03=0x4C;
    		delay(1);
    		Reg04=0xA0;
    		delay(1);
    		Reg05=0x7E;
    		delay(1);
    		Reg06=0x7A;
    		delay(1);
			
			page(3);
			delay(10);
			Reg01 = 0x30;
			delay(1);
			Reg04 = 0x80;
			delay(1);
			
			page(0);
			delay(10);
			Reg0c= 0xce;  //將芯片設置成正常模式,跟外部網絡連接
			delay(1);			
			Reg0d= 0xe0;
			delay(1);
			Reg00= 0x22;  //啟動芯片開始工作
//-----------------------------------
			Reg07= 0xff;  //清除所有中斷標志位
//			ms = 0;
//			while(ms<100);
			delay(10000);
		}


void init_protocal()
{
/*  server_ip=192.168.1.40  */

    server_ipaddr.addr2_1  =192;
    server_ipaddr.addr2_1 +=(unsigned short)168<<8;
    server_ipaddr.addr4_3  =1;
    server_ipaddr.addr4_3 +=(unsigned short)SERVER_IP<<8;
    
    nod_ipaddr.addr2_1     =192;
    nod_ipaddr.addr2_1    +=(unsigned short)168<<8;
    nod_ipaddr.addr4_3     =1;
    nod_ipaddr.addr4_3    +=(IP<<8);
    
    t_iphdr.tos_version    =69;
    t_iphdr.tos_version   +=(unsigned short)0<<8;      //usally not use
    t_iphdr.id =20;  //++IP_id;
    t_iphdr.id +=(unsigned short)52<<8;
    
    t_iphdr.frag_off =0;
    t_iphdr.protocal_ttl   =128;       //usally 32 or 64
    t_iphdr.protocal_ttl  +=(unsigned short)17<<8;
    t_iphdr.saddr =nod_ipaddr;
    t_iphdr.daddr =server_ipaddr;
    //UDP PORT
    t_udphdr.sport =ORDERPORT+(IP<<8); //1*256+0x08,9801
    t_udphdr.dport =ORDERPORT+(IP<<8); //1*256+0x07,9801
    
    pre_udphdr1.saddr=t_iphdr.saddr;
    pre_udphdr1.daddr=t_iphdr.daddr;
    pre_udphdr1.protocal_value  =0;
    pre_udphdr1.protocal_value +=17<<8;  //UDP
    
    MAC_broad.addr2_1   =255;
    MAC_broad.addr2_1  +=(unsigned short)255<<8;
    MAC_broad.addr4_3   =255;
    MAC_broad.addr4_3  +=(unsigned short)255<<8;
    MAC_broad.addr6_5   =255;
    MAC_broad.addr6_5  +=(unsigned short)255<<8;
    
    
    MAC_self.addr2_1  =IP<<1;
    MAC_self.addr2_1  +=(unsigned short)224<<8;
    MAC_self.addr4_3  =76;
    MAC_self.addr4_3  +=(unsigned short)160<<8;
    MAC_self.addr6_5  =126;
    MAC_self.addr6_5  +=(unsigned short)122<<8;
    
    MAC_nod.addr2_1  =0;
    MAC_nod.addr2_1  +=(unsigned short)224<<8;
    MAC_nod.addr4_3  =76;
    MAC_nod.addr4_3  +=(unsigned short)160<<8;
    MAC_nod.addr6_5  =126;
    MAC_nod.addr6_5  +=(unsigned short)122<<8;
}


void load_ip(unsigned short *buf,unsigned short *length)
{
    unsigned short tempbuf[1240/2];
    memcpy(tempbuf,buf,*length);
    memcpy(buf,&t_iphdr,sizeof(t_iphdr));
    memcpy(buf+sizeof(t_iphdr),tempbuf,*length);
    *length=*length+10;
}

void load_udp(unsigned short *buf,unsigned short *length)
{
    unsigned short tempbuf[1240/2];

    t_udphdr.chksum =0;
    t_udphdr.length =change_byte((*length+4)<<1);
    pre_udphdr1.length=t_udphdr.length;
    pre_udphdr1.daddr= t_iphdr.daddr;
    
    memcpy(tempbuf,&pre_udphdr1,sizeof(pre_udphdr1));
    memcpy(tempbuf+sizeof(pre_udphdr1),&t_udphdr,sizeof(t_udphdr));
    memcpy(tempbuf+sizeof(pre_udphdr1)+sizeof(t_udphdr),buf,*length);
    t_udphdr.chksum =checksum(tempbuf,*length+10);
    
    memcpy(tempbuf,buf,*length);
    memcpy(buf,&t_udphdr,sizeof(t_udphdr));
    memcpy(buf+sizeof(t_udphdr),tempbuf,*length);
    *length=*length+4;
}
void send_frame(unsigned short *buf,unsigned short MAC_type,unsigned short PROTO_type,unsigned short length)
{
       unsigned short x;
       unsigned short i;
       unsigned char  h,l;
       unsigned short tempbuf[1240/2];
       memcpy(tempbuf,buf,length);  //暫時保存在tempbuf
       if(length<46/2)
       {
          for(i=length;i<46/2;i++)
            tempbuf[i]=0;
          length=46/2;
       }

       
       if(MAC_type==0)              //添加MAC地址
         memcpy(buf,&MAC_server,3);
       else if(MAC_type==BROADCAST)
         memcpy(buf,&MAC_broad,3);
       else if(MAC_type==REC_ARP)
         memcpy(buf,&MAC_broad,3);
       else if(MAC_type==NOD)
         memcpy(buf,&MAC_nod,3);
         
       memcpy(buf+3,&MAC_self,3);   //添加源MAC地址

       if(PROTO_type==UDP)          //協議類型
         *(buf+6)=8+(0<<8);   
       else if(PROTO_type==ARP)
         *(buf+6)=8+(6<<8);   
       else if(PROTO_type==LSS)          //協議類型
         *(buf+6)=8+(8<<8);   
         
       memcpy(buf+7,tempbuf,length); 
       
       length+=7;
       length=length<<1;
       h=length>>8;
       l=length&0xff;
       
       page(0);
       Reg09 = 0x40;
       delay(1);
       Reg08 = 0x00;
       delay(1);
       Reg0b = h;
       delay(1);
       Reg0a = l;
       delay(1);
       Reg00 = 0x12;
       delay(1);
       
       for(x=0;x<length/2;x++)
       {
 	     delay(1);
 	     Reg10 = buf[x];
       }

	    Reg0b=0x00; 
		delay(1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠色狠狠色合久久伊人| 精品一区二区久久久| 欧美成人a视频| 97精品国产露脸对白| 免费在线观看视频一区| 在线观看日韩国产| 丁香婷婷综合色啪| 亚洲高清免费视频| 久久久精品天堂| 欧美在线观看18| 紧缚奴在线一区二区三区| 国产精品大尺度| 7777精品伊人久久久大香线蕉的| 韩国av一区二区三区在线观看| 亚洲欧洲在线观看av| 91麻豆精品国产| aa级大片欧美| 精品在线免费视频| 亚洲国产成人91porn| 久久久亚洲精华液精华液精华液| 欧美亚日韩国产aⅴ精品中极品| 国产综合久久久久久久久久久久| 亚洲第一狼人社区| 国产精品蜜臀av| 精品国产91乱码一区二区三区 | 欧美精品123区| 成人一级片在线观看| 美女网站色91| 亚洲二区视频在线| 国产日韩av一区| 色婷婷香蕉在线一区二区| 国产一区二区精品久久99| 亚洲国产毛片aaaaa无费看| 国产精品美女久久久久久久| 日韩欧美国产小视频| 欧美性做爰猛烈叫床潮| 91蜜桃免费观看视频| 国产高清一区日本| 久久99国产精品久久99果冻传媒| 午夜精品在线看| 亚洲综合在线五月| 亚洲天堂a在线| 国产精品国产a| 久久亚洲私人国产精品va媚药| 91精品国产色综合久久ai换脸| 91久久精品日日躁夜夜躁欧美| 不卡一卡二卡三乱码免费网站| 国产成人午夜电影网| 国产精品一品二品| 国产精品综合在线视频| 精东粉嫩av免费一区二区三区| 视频精品一区二区| 天堂在线一区二区| 五月婷婷激情综合| 三级一区在线视频先锋| 亚洲成人一区在线| 亚洲一区二区三区中文字幕 | 在线视频国内一区二区| 99久久精品免费看| 91网站视频在线观看| kk眼镜猥琐国模调教系列一区二区| 国模一区二区三区白浆| 伦理电影国产精品| 午夜精品福利一区二区三区蜜桃| 亚洲三级在线免费观看| 中文字幕乱码久久午夜不卡| www一区二区| 国产亚洲短视频| 亚洲视频免费看| 亚洲免费av高清| 午夜精品久久久久久久久| 天天操天天色综合| 久久精品国产在热久久| 国产一区二区久久| 99精品桃花视频在线观看| 99精品久久免费看蜜臀剧情介绍| 91丨国产丨九色丨pron| 在线观看一区不卡| 欧美一区日本一区韩国一区| 日韩欧美国产一区二区在线播放 | 欧美一区二区三区在线观看 | 日韩视频一区二区三区 | 久久噜噜亚洲综合| 中文天堂在线一区| 一区二区三区美女| 免费观看一级欧美片| 国产一区二区电影| 色一情一乱一乱一91av| 欧美卡1卡2卡| 国产日韩成人精品| 曰韩精品一区二区| 久久国产精品区| 成人免费观看男女羞羞视频| 欧美丝袜自拍制服另类| 欧美一级精品在线| 国产精品成人免费| 日韩不卡一区二区| 成人污视频在线观看| 欧美剧情电影在线观看完整版免费励志电影 | 99国产精品久| 91麻豆精品一区二区三区| 欧美猛男超大videosgay| 久久久久免费观看| 亚洲一区二区综合| 国产精品夜夜嗨| 欧美在线色视频| 国产色产综合色产在线视频| 一区二区三区四区亚洲| 国产一区不卡在线| 欧美亚洲禁片免费| 久久精品亚洲乱码伦伦中文| 亚洲一区二区欧美激情| 九色综合狠狠综合久久| 99久久综合精品| 欧美哺乳videos| 亚洲高清免费观看高清完整版在线观看| 激情文学综合网| 在线欧美日韩精品| 亚洲国产激情av| 日本欧美一区二区在线观看| 91免费版pro下载短视频| 2欧美一区二区三区在线观看视频| 一区二区三区不卡视频| 国产精品综合二区| 欧美一级一级性生活免费录像| 自拍偷拍亚洲激情| 高清成人在线观看| 久久在线观看免费| 日本成人在线不卡视频| 色网站国产精品| 欧美国产97人人爽人人喊| 日韩va欧美va亚洲va久久| 色婷婷综合视频在线观看| 日本一区二区三级电影在线观看 | 日本三级亚洲精品| 日本韩国精品一区二区在线观看| 国产亚洲精品资源在线26u| 日本午夜一本久久久综合| 欧美午夜电影在线播放| 亚洲三级电影网站| 菠萝蜜视频在线观看一区| www亚洲一区| 韩国成人福利片在线播放| 欧美一区二区三区四区在线观看| 亚洲妇女屁股眼交7| 91麻豆免费观看| 亚洲欧洲日本在线| 99视频精品全部免费在线| 国产欧美一区二区精品仙草咪| 国产伦精品一区二区三区在线观看 | 国产黄色精品视频| 精品乱人伦小说| 精品一区二区在线免费观看| 8v天堂国产在线一区二区| 日精品一区二区| 欧美日韩成人在线一区| 午夜精品一区在线观看| 在线播放91灌醉迷j高跟美女| 亚洲成人手机在线| 欧美剧情片在线观看| 日本成人在线不卡视频| 欧美一区午夜视频在线观看| 日本成人在线看| 精品对白一区国产伦| 国内精品久久久久影院色| 久久九九国产精品| 国产成人啪免费观看软件| 中文字幕欧美三区| 91在线播放网址| 亚洲综合在线五月| 制服丝袜av成人在线看| 久久99蜜桃精品| 国产午夜久久久久| 99久久国产综合精品麻豆| 亚洲成人午夜影院| 精品日本一线二线三线不卡| 国产麻豆精品在线观看| 国产精品福利av| 欧美日免费三级在线| 精品一区二区三区免费观看| 欧美韩日一区二区三区| 91视视频在线直接观看在线看网页在线看| 亚洲男人的天堂在线观看| 在线看一区二区| 六月丁香综合在线视频| 日本一区二区免费在线| 欧美日韩在线一区二区| 国产制服丝袜一区| 亚洲三级小视频| 日韩小视频在线观看专区| 成人免费看视频| 午夜成人免费视频| 国产欧美日韩视频一区二区| 色婷婷综合久久久中文一区二区 | 91精品国产手机| 精品一区二区三区免费| 国产精品久久久久aaaa| 欧美日韩精品是欧美日韩精品| 精品一区二区三区免费| 亚洲一区影音先锋|