⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 etherdev.lst

📁 STC51系列的源码
💻 LST
字号:
C51 COMPILER V8.02   ETHERDEV                                                              10/28/2008 15:31:36 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE ETHERDEV
OBJECT MODULE PLACED IN .\out\etherdev.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE etherdev.c LARGE OPTIMIZE(SIZE) BROWSE DEBUG OBJECTEXTEND PRINT(.\out\ether
                    -dev.lst) OBJECT(.\out\etherdev.obj)

line level    source

   1          /********************************************************************************/
   2          /* filename: ethernet.c                                                         */
   3          /* version : v1.00                                                              */
   4          /* created : hw-chen                                                            */
   5          /********************************************************************************/
   6          #include "../CPU/CPU.h"
   7          #include "../CFG/CFG.h"
   8          #include "../UART/UART.h"
   9          #include "uip.h"
  10          #include "uipopt.h"
  11          #include "uip_arch.h"
  12          #include "etherdev.h"
  13          unsigned char pkts_start_page=0x0;
  14          unsigned char pkts_sends_page=0x0;
  15          
  16          /********************************************************************************/
  17          /* function : net_delay_ms()                                                    */
  18          /* recension: hw-chen                                                           */
  19          /* descript : 延时函数                                                          */
  20          /********************************************************************************/
  21          void net_delay_ms(unsigned char time)
  22          {   unsigned int i;
  23   1          while(time)
  24   1          {   for(i=0;i<1000;i++)
  25   2              {   _nop_();
  26   3                  _nop_();
  27   3                  _nop_();
  28   3                  _nop_();
  29   3                  _nop_();
  30   3                  _nop_();
  31   3                  _nop_();
  32   3                  _nop_();
  33   3                  _nop_();
  34   3                  _nop_();
  35   3              }
  36   2              time--;
  37   2          }
  38   1      }
  39          
  40          /********************************************************************************/
  41          /* function : rtl8019_set_pages                                                 */
  42          /* created  : hw-chen                                                           */
  43          /* descript : RTL8019更换页面                                                   */
  44          /********************************************************************************/
  45          void rtl8019_set_pages(unsigned char page)
  46          {   unsigned char mdata;
  47   1          mdata =DEV_NET_COMMAND;
  48   1          mdata&=0x3B;
  49   1          page  =page<<6;
  50   1          mdata =mdata|page;
  51   1          DEV_NET_COMMAND=mdata;
  52   1      }
  53          
  54          /********************************************************************************/
C51 COMPILER V8.02   ETHERDEV                                                              10/28/2008 15:31:36 PAGE 2   

  55          /* function : rtl8019_initialize()                                              */
  56          /* created  : hw-chen                                                           */
  57          /* descript : RTL8019初始化                                                     */
  58          /*  RTL8019AS内部有16kB SRAM,分为64页,256字节/页,组成环形队列作为           */
  59          /*  收发缓冲区,只能按页操作,页地址从0x4000~0x7FFF。可以通过相关的            */
  60          /*  寄存器读写操作,可以对缓冲区进行设置及状态的读取。由于接收缓冲区            */
  61          /*  是按页即256B来操作的,与缓冲区地址有关的寄存器中只需存储缓冲区的            */
  62          /*  高16位地址即可。在本设计中,将前52页(0x4C00-0x8000)作为接收缓冲区           */
  63          /*  将后12页(0x4000~0x4B00)作为发送缓冲区。                                    */
  64          /********************************************************************************/
  65          void rtl8019_initialize(void)
  66          {   unsigned char mdata;
  67   1          net_delay_ms(10);
  68   1          DEV_NET_COMMAND= NET_PAGE0+NET_NODMA+NET_STOP;  //* 选择页0寄存器,网卡停止 运行
  69   1          
  70   1          UART_printf("A-0x%bx.\r\n",DEV_NET_ID1);
  71   1          UART_printf("B-0x%bx.\r\n",DEV_NET_ID0);
  72   1          
  73   1          DEV_NET_PSTART = RX_START_PAGE;     //* 接收缓冲区范围
  74   1          DEV_NET_PSTOP  = RX_STOP_PAGE;      //* PSTOP,构造缓冲环:0x4C-0x80.   
  75   1          DEV_NET_BNRY   = RX_START_PAGE;     //* BNRY是读指针,指向用户已经读走的页
  76   1          DEV_NET_TPSR   = TX_START_PAGE;     //* 发送缓冲区的指针
  77   1          DEV_NET_TCR    = 0xE2;              //* 发送配置寄存器,loop back mode 使芯片处于mon和loopback模式,跟

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -