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

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

?? eth.lst

?? 基于單片機(jī)C8051F020與以太網(wǎng)進(jìn)行通信程序
?? LST
?? 第 1 頁 / 共 2 頁
字號:
 176   1              reg07=0xff;
 177   1              reg00=0x3e;             //to sendpacket;  
 178   1              free(outbuf);
 179   1      }
C51 COMPILER V7.06   ETH                                                                   07/29/2006 13:15:57 PAGE 4   

 180          
 181          //------------------------------------------------------------------------
 182          // This functions checks the 8019 receive event status
 183          // word to see if an ethernet frame has arrived.  If so,
 184          // set EVENT_ETH_ARRIVED bit in global event_word
 185          //------------------------------------------------------------------------
 186          void query_8019(void)
 187          {   
 188   1      char bnry,curr;
 189   1              page(0);
 190   1              bnry=reg03;             //bnry page have read 讀頁指針
 191   1              page(1);
 192   1              curr=reg07;             //curr writepoint 8019寫頁指針
 193   1              page(0);
 194   1              if ((curr==0))  return;
 195   1              bnry=bnry++;
 196   1              if (bnry>0x7f)  bnry=0x4c;
 197   1              if (bnry!=curr) //此時(shí)表示有新的數(shù)據(jù)包在緩沖區(qū)里
 198   1              {
 199   2                      EA = 0;
 200   2                  event_word |= EVENT_ETH_ARRIVED;
 201   2              EA = 1;
 202   2              }
 203   1              reg0b=0x00; reg0a=0x00;  reg00=0x22;//complete dma page 0
 204   1      }
 205          
 206          //------------------------------------------------------------------------
 207          // This function gets an incoming Ethernet frame from the 8019.
 208          // There may be more than 1 waiting but just allocate memory for
 209          // one and read one in.  Use the 8019 to queue incoming packets.
 210          //------------------------------------------------------------------------
 211          UCHAR xdata * rcve_frame(void)//如果收到一個(gè)有效的數(shù)據(jù)包,返回收到的數(shù)據(jù),否則返回NULL
 212          {
 213   1      UCHAR bnry,curr,next_page;
 214   1      
 215   1      UINT len, ii;
 216   1      UCHAR temp;
 217   1      UCHAR xdata * buf;
 218   1      
 219   1              page(0);
 220   1              bnry=reg03;             //bnry page have read 讀頁指針
 221   1              page(1);
 222   1              curr=reg07;             //curr writepoint 8019寫頁指針
 223   1              page(0);
 224   1              if ((curr==0))  return NULL;    //讀的過程出錯(cuò)
 225   1              next_page=bnry;
 226   1              bnry=bnry++;
 227   1              if (bnry>0x7f)  bnry=0x4c;
 228   1              if (bnry!=curr) //此時(shí)表示有新的數(shù)據(jù)包在緩沖區(qū)里
 229   1              {
 230   2                      //讀取一包的前4個(gè)字節(jié):4字節(jié)的8019頭部
 231   2                      page(0);
 232   2                      reg09=bnry;             //read page address high
 233   2                      reg08=0x00;     //read page address low
 234   2                      reg0b=0x00;             //read count high
 235   2                      reg0a=4;                //read count low;
 236   2                      reg00=0x0a;             //read dma
 237   2                      
 238   2                      temp = reg10;           temp = reg10;
 239   2                      next_page = temp-1;             //next page start-1
 240   2                      len = reg10;            temp = reg10;
 241   2                      len += temp<<8;
C51 COMPILER V7.06   ETH                                                                   07/29/2006 13:15:57 PAGE 5   

 242   2                      reg0b=0x00; reg0a=0x00;  reg00=0x22;//complete dma page 0
 243   2      
 244   2                      // Allocate enough memory to hold the incoming frame
 245   2                      buf = (UCHAR xdata *)malloc(len);
 246   2                      if (buf == NULL)
 247   2                      {
 248   3                              // out of RAM
 249   3                              // Tell 8019 to skip the frame
 250   3                              page(1);
 251   3                              curr=reg07;     //page1
 252   3                              page(0);                //切換回page0
 253   3                      bnry = curr -1;
 254   3                      if      (bnry < 0x4c) bnry =0x7f;
 255   3                      reg03=bnry;     //write to bnry   
 256   3                              reg07=0xff;             //清除中斷狀態(tài)可以不用
 257   3                              return NULL;
 258   3                      }
 259   2                      // This flag keeps track of allocated rcve memory
 260   2                      rcve_buf_allocated = TRUE;
 261   2                      // Call the assembler function to get the incoming frame
 262   2                      reg09=bnry;     //read page address high
 263   2                      reg08=4;        //read page address low
 264   2                      reg0b=len>>8;   //read count high
 265   2                      reg0a=len&0xff; //read count low;
 266   2                      reg00=0x0a;     //read dma
 267   2              for(ii=0;ii<len;ii++)
 268   2              {
 269   3                      buf[ii]=reg10;
 270   3              }
 271   2                      reg0b=0x00;     reg0a=0x00; reg00=0x22; //dma complete  page0     
 272   2                      // Return pointer to start of buffer
 273   2                      bnry=next_page;
 274   2                      if (bnry<0x4c)  bnry=0x7f;
 275   2                      reg03=bnry;     //write to bnry    
 276   2              reg07=0xff;
 277   2                      return (buf);   
 278   2              }
 279   1              return NULL;
 280   1      }
 281          
 282          
 283          
 284           
 285                          
 286          
 287          void eth_send(UCHAR xdata * outbuf, UCHAR * hwaddr, UINT ptype, UINT len)
 288          {
 289   1              ETH_HEADER xdata * eth;
 290   1         
 291   1         eth = (ETH_HEADER xdata *)outbuf;
 292   1                
 293   1              // Add 14 byte Ethernet header
 294   1              memcpy(eth->dest_hwaddr, hwaddr, 6);
 295   1              memcpy(eth->source_hwaddr, my_hwaddr, 6); 
 296   1         eth->frame_type = ptype;
 297   1      
 298   1         // We just added 14 bytes to length
 299   1         send_frame(outbuf, len + 14);
 300   1      }
 301          
 302          //------------------------------------------------------------------------
 303          // This is the handler for incoming Ethernet frames
C51 COMPILER V7.06   ETH                                                                   07/29/2006 13:15:57 PAGE 6   

 304          //      This is designed to handle standard Ethernet (RFC 893) frames
 305          // See "TCP/IP Illustrated, Volume 1" Sect 2.2
 306          //------------------------------------------------------------------------
 307          void eth_rcve(UCHAR xdata * inbuf)
 308          {
 309   1         ETH_HEADER xdata * eth;
 310   1         
 311   1         eth = (ETH_HEADER xdata *)inbuf;
 312   1         
 313   1         // Reject frames in IEEE 802 format where Eth type field
 314   1         // is used for length.  Todo: Make it handle this format
 315   1         if (eth->frame_type < 1520)
 316   1         {
 317   2            if (debug) serial_send("ETH: IEEE 802 pkt rejected\r");
 318   2            return;      
 319   2         }
 320   1      
 321   1         // Figure out what type of frame it is from Eth header
 322   1         // Call appropriate handler and supply address of buffer
 323   1         switch (eth->frame_type)
 324   1         {
 325   2                 case ARP_PACKET:
 326   2                 arp_rcve(inbuf);
 327   2                 break;
 328   2                            
 329   2                 case IP_PACKET:
 330   2                 ip_rcve(inbuf);
 331   2            break;
 332   2      
 333   2            default:
 334   2                      if (debug) serial_send("Error: Unknown pkt rcvd\r");
 335   2            break;
 336   2         }
 337   1      }
 338          
 339          
 340          
 341          
 342          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1048    ----
   CONSTANT SIZE    =     53    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      26
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久久久久影片| 亚洲精品视频免费观看| 国产精品不卡一区二区三区| 中文字幕一区二区在线观看| 热久久久久久久| 色婷婷av一区二区三区软件| 日韩欧美一区二区不卡| 亚洲色图.com| 丁香天五香天堂综合| 色悠久久久久综合欧美99| 久久久久一区二区三区四区| 日韩精品亚洲一区二区三区免费| 不卡视频在线看| 国产午夜精品理论片a级大结局 | 亚洲国产一区二区视频| 国产91综合网| 精品国产sm最大网站| 午夜日韩在线电影| 色欧美乱欧美15图片| 中文字幕一区二区三区在线不卡| 精品一区二区在线看| 日韩午夜在线观看视频| 午夜欧美一区二区三区在线播放| 日本韩国欧美三级| 亚洲精品五月天| 色婷婷av一区二区三区gif | 久久午夜电影网| 蜜臀91精品一区二区三区| 欧美日韩激情在线| 亚洲福利电影网| 在线亚洲免费视频| 亚洲综合激情网| 91久久国产最好的精华液| 亚洲久本草在线中文字幕| 91免费视频大全| 亚洲视频一区在线| 一本大道综合伊人精品热热| 亚洲欧美国产三级| 在线中文字幕一区二区| 亚洲国产综合91精品麻豆| 欧美日韩精品专区| 日韩和欧美的一区| 欧美mv日韩mv国产网站app| 麻豆精品久久精品色综合| 精品久久久久久久人人人人传媒 | 91精品国产色综合久久久蜜香臀| 亚洲一区精品在线| 欧美日韩国产经典色站一区二区三区| 国产成人亚洲综合a∨猫咪| 91黄色激情网站| 国产自产v一区二区三区c| 狠狠色综合色综合网络| 国产乱码字幕精品高清av| 丁香亚洲综合激情啪啪综合| 亚洲色图欧美激情| 欧美国产日韩在线观看| 日韩午夜av电影| 欧美色国产精品| 一本一道波多野结衣一区二区| 韩国精品主播一区二区在线观看| 亚洲国产成人91porn| 亚洲男女一区二区三区| 中文av一区二区| 久久免费视频色| 久久综合九色欧美综合狠狠| 欧美一级片在线观看| 欧美高清性hdvideosex| 亚洲天堂2016| 国产精品无码永久免费888| 欧美大尺度电影在线| 91.com视频| 欧美日韩一区二区电影| 欧美视频在线不卡| 欧美三级电影网| 欧美精品三级在线观看| 欧美日韩精品三区| 制服丝袜在线91| 欧美日韩在线观看一区二区| 欧美伊人久久久久久久久影院| 色婷婷香蕉在线一区二区| 色88888久久久久久影院按摩| 99久久精品免费| 91蜜桃免费观看视频| 91免费在线播放| 在线一区二区观看| 欧美色网站导航| 欧美精品xxxxbbbb| 欧美成人精品福利| 国产亚洲精品超碰| 一区在线播放视频| 亚洲伦理在线免费看| 尤物在线观看一区| 午夜影视日本亚洲欧洲精品| 日本亚洲一区二区| 国产在线日韩欧美| 粉嫩嫩av羞羞动漫久久久| 色中色一区二区| 欧美精品在线视频| 日韩欧美在线观看一区二区三区| 日韩一本二本av| 久久久久亚洲蜜桃| 国产精品美女视频| 亚洲国产视频一区| 狠狠色狠狠色综合系列| 成人免费毛片嘿嘿连载视频| 色婷婷国产精品综合在线观看| 91精品1区2区| 精品欧美一区二区久久| 国产精品乱码妇女bbbb| 亚洲线精品一区二区三区| 久久99精品国产.久久久久久| 国产精品一区在线观看你懂的| 成熟亚洲日本毛茸茸凸凹| 欧美色图片你懂的| 精品国产污污免费网站入口| 亚洲欧洲精品一区二区三区| 亚洲大尺度视频在线观看| 国产综合色精品一区二区三区| 99久久亚洲一区二区三区青草| 欧美三级电影在线观看| 中文幕一区二区三区久久蜜桃| 午夜婷婷国产麻豆精品| 高清av一区二区| 69精品人人人人| 亚洲精品欧美二区三区中文字幕| 日本vs亚洲vs韩国一区三区| jizz一区二区| 日韩欧美在线123| 亚洲男人都懂的| 久久99精品久久久久| 色88888久久久久久影院按摩 | 久久精品人人做人人爽97| 亚洲三级免费观看| 激情综合色丁香一区二区| 欧美在线免费观看亚洲| 欧美激情综合在线| 热久久久久久久| 欧美三级三级三级| 国产精品久久久久久久久免费丝袜 | 国产亚洲va综合人人澡精品| 洋洋成人永久网站入口| 丰满少妇久久久久久久| 日韩欧美在线综合网| 亚洲综合999| 成人av在线观| 国产日韩欧美a| 美脚の诱脚舐め脚责91 | 国产精品三级电影| 美女在线一区二区| 欧美伊人久久久久久午夜久久久久| 欧美高清一级片在线观看| 日本伊人色综合网| 欧美在线观看视频在线| 亚洲欧洲av色图| 成人国产精品免费网站| 久久综合久久久久88| 奇米一区二区三区| 欧美精品vⅰdeose4hd| 一区二区三区成人| 一本大道久久a久久精品综合| 中文字幕av一区 二区| 久久激情五月婷婷| 欧美裸体一区二区三区| 亚洲午夜日本在线观看| 日本韩国一区二区三区视频| 亚洲欧美经典视频| 97se亚洲国产综合自在线| 国产精品久久久久7777按摩 | 成人免费小视频| av亚洲产国偷v产偷v自拍| 久久综合精品国产一区二区三区 | 自拍偷自拍亚洲精品播放| 国产xxx精品视频大全| 国产日产亚洲精品系列| 国产成人aaa| 国产精品国产三级国产普通话三级 | 国产精品一区二区三区99| 精品99一区二区三区| 国产在线播精品第三| 国产蜜臀97一区二区三区| 成人激情文学综合网| 中文字幕一区二区三区乱码在线| 91亚洲男人天堂| 午夜视黄欧洲亚洲| 精品国产sm最大网站| 成人国产精品免费网站| 一区二区三区鲁丝不卡| 制服丝袜亚洲精品中文字幕| 蜜桃视频免费观看一区| 久久精品在线免费观看| 91香蕉视频mp4| 香蕉乱码成人久久天堂爱免费| 欧美一级艳片视频免费观看| 国产麻豆午夜三级精品| 亚洲人成网站色在线观看| 欧美精品一卡二卡| 国产一区二区不卡| 一区二区三区四区国产精品| 欧美日韩一级二级三级| 国产乱码一区二区三区|