导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→《NE2000网卡驱动程序》文章中问题请教![hitliusb]

 *第12061篇: 《NE2000网卡驱动程序》文章中问题请教!

  
楼 主:hitliusb 2003年5月15日19:34
 《NE2000网卡驱动程序》文章中问题请教!
1。网卡中数据发送的顺序是什么,是先低地址后高地址,还是先高地址后低地址?在WINDOWS2000里面用命令ipconfig -all得到的physical address是00-00-21-E6-F9-4A,高地址在左边还是右边啊?通过DMA口(REG10)将数据写入网卡RAM区时,是将数据按桢格式----目的网卡地址,源网卡地址,数据类型,数据----依次写入网卡RAM区的吗?

     2。send_packet函数里面有这样的语句:
    for(i=0;i  <6;i++){                     //最多重发6次
        for(ii=0;ii  <1000;ii++)             //检查txp为是否为低
            if((reg00&0x04)==0) break;
        if((reg04&0x01)!=0)   break;      //表示发送成功        
        reg00=0x3E;
    }
    为什么检查txp为是否为低需要循环1000次呢?reg00能记录那么多的数据(1000个)吗?事实上,只要最后一个发送的数据发送完了(即TXP位为1),则最终reg00仍可表示整个1000个数据都发送完了,这就没有意义了。
    另外,reg00=0x3E;是表示发送数据到网上,那“重发6次”指的是重发到网上还是重发到网卡RAM里面呢?如果是指重发到网上,
前面也没有reg00=0x3E;语句啊(这个循环之后才有),只有reg00=0x12; 语句,
如何重发啊?
    还有,sourcenodeid[],destnodeid[]好象没有通过DMA端口写入网卡RAM里面啊,这在启动发送命令时是如何把数据发送出去的呢?

     3。bit recv_packet(union netcard *rxdnet)函数里面有这样的语句:

     if(curr==0)    return 0;             //读的过程出错    
    判断curr==0就可以知道“读的过程出错”吗?这是从那里知道的?我查了一下RTL8019的资料手册,好象没有提到这些。这是规定的吗?我想确认一下。
    bnry=rxdnet->  bytes.bytebuf[1]-1;   //next page start-1 
    这里下一页指针的含义是什么,是相对谁而言的(当前读,还是当前写),为什么要减1呢

谢谢各位大虾赐教!

  
2楼:hitliusb 2003年5月16日16:36
 谁来帮帮我啊
  
3楼:hitliusb 2003年5月19日15:43
 谁来帮帮我啊?谢谢了
  
4楼:yibuerli 2003年5月19日16:00
 我很需要NE2000的资料,你在哪里找的?哪本书?能否告知?
  
5楼:hitliusb 2003年5月19日16:05
 在LAOGU首页找!很多的,仔细点
  
6楼:yibuerli 2003年5月19日16:11
 你是说单片机上网的一些资料吗?能否给点建议?哪个链接?
  
7楼:langren0468 2003年5月19日16:30
 老古主页很多,自己看!

>>>>>>对该主题发表你的看法

本主题贴数7,分页: [第1页]


[上一篇主题]:[求助]

[下一篇主题]:关于Micro-c51