boyudongfang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1952回复:12

合作移植嵌入式TCP/IP协议栈

楼主#
更多 发布于:2004-08-08 18:49
我这里有一份ucosTCP/IP源代码,前一阶段做过移植,可是没完成,感觉内容挺多的。提个建议:大家合作完成移植,每个人移植一部分:IP,TCP,UDP,DHCP,ARP等,目标平台暂定ARM和51,如果有人愿意参加,我愿作东,做出东西来大家一起分享,不知大家意下如何。又愿意者请给我回信:
boyudongfang@21cn.com
linuxfun
驱动牛犊
驱动牛犊
  • 注册日期2004-07-31
  • 最后登录2004-11-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-09 16:24
嵌入式TCP/IP已经有很多成熟的商业化产品了,并不是一个好方向。
boyudongfang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-09 18:13
别人的不是我们自己的。美国人早就登上月球了,可是中国还得奋斗,就是这个道理。合作搞出来,收获会超出事情本身。也算为众多的嵌入式开发者做一个贡献。
linuxfun
驱动牛犊
驱动牛犊
  • 注册日期2004-07-31
  • 最后登录2004-11-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-13 15:35
呵呵,为什么说国内没有嵌入式协议栈呢?

合作搞出来,是不是也想商业化呢?如果不是,做出来好像就没啥意义了吧? 如果是,那和国外的产品在技术上比,肯定会落后很多,别人为什么会买你的呢?
boyudongfang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-22 09:05
最关键的是由于嵌入式系统千变万化,往往要做移植之后才能在目标平台上工作,而这种移植没有源代码是不行的,也没有哪一个软件能够适应所有的情况。
linuxfun
驱动牛犊
驱动牛犊
  • 注册日期2004-07-31
  • 最后登录2004-11-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-26 14:04
hehe,看来楼上对商业化的嵌入式TCP/IP协议栈并不熟悉啊。一般提供这方面产品的公司,都是集成度很高的,往往可以独立于操作系统。如果,针对每一个项目都要移植,那就不叫商业化的产品了。

如果只是针对您自己的项目,让兄弟们凑在一起,为你白打工,那也太……
boyudongfang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-08-26 22:07
hehe,老兄果然功力超凡,本人佩服。这方面还望多多指教啊!还望对兄弟多介绍介绍,在此先谢过了!
jerry_2002
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2004-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-02 15:34
哦,我做过TCP/IP协议栈,可是是用汇编语言的,没操作系统呀
boyudongfang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-09-02 22:47
这么牛啊!佩服!
但不知道做了几层,是不是只做了MAC层,即使只做到这一层已经很牛了!
zhuzc
驱动中牛
驱动中牛
  • 注册日期2001-09-01
  • 最后登录2005-04-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-09-10 00:20
www.TeamF1.com的NetStack-RT。
我是树上的那只鸟,整理着自己的羽毛,看着城市的喧嚣……
boyudongfang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-09-10 07:26
用汇编语言其实也有很大的弊端:可移植性差。
w8zz
驱动小牛
驱动小牛
  • 注册日期2001-12-12
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望23点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2004-09-16 03:49
这么牛啊!佩服!
但不知道做了几层,是不是只做了MAC层,即使只做到这一层已经很牛了!

union v { uint word;

                struct{uchar low;uchar high;}bytes;  /* 发送顺序为低位在前,高位在后    8019网卡的长度*/

              } ;
union w { ulong dword;
          struct {uint high;uint low;}words;
       };
     /*以太网帧*/
 struct socket {
                 uint destnodeid[3];
                 uint destip[2];
                 uint destport;

                };
 struct socket socket1, socket2;
 struct  ethernet { uchar recievestatus;   /*接收状态*/
                    uchar nextpage;        /*下一个页*/
                    uint length;           /*以太网长度,以字节为单位,*/
                    uint destnodeid[3];    /*目的网卡地址*/
                    uint sourcenodeid[3];   /*源网卡地址*/
                    uint protocal;          /*下一层协议 */
                    uchar packet[1527];      /*包的内容*/


                   }  ;
    /*IP包   仅当IHL=5时用 当不=5时作转换*/
  struct ip  { uint head[9];          /*以太网包头*/
                    uchar verandihl;        /*版本与头长度*/
                    uchar typeofserver;     /*服务类型*/
                    uint totallength;      /*总长度*/
                    uint frameindex;       /*IP帧序号*/
                    uint segment;          /*分段标志*/
                    uchar ttl;             /*生存时间*/
                    uchar protocal;        /*下一层协议*/
                    uint crc;              /*校验和*/
                    uint sourceip[2];      /*源IP*/
                    uint destip[2];        /*目的IP*/
                    uchar packet[1517];     /*IP包的内容*/

                   };
     struct ippacket  { uint head[9];          /*以太网包头*/
                        uint ippacket[720];     /*IP包的内容*/
                       };

   struct arp  { uint head[9];  /*以太网头  */

                                     /*arp报文的内容总长28字节*/
                 uint harewaretype;   /*以太网为0x0001*/
                 uint protocaltype;    /*ip 为0X0800*/
                 uchar halength;        /*=0X06*/
                 uchar palength;         /*=0X04*/
                 uint operation;         /*操作  0X0001为请求   0X0002为应答  */
                                         /*0X0003为反向地址请求 0X0004为反向地址应答*/
                 uint sourcenodeid[3];   /*源网卡地址*/
                 uint sourceip[2];       /*源IP地址*/
                 uint destnodeid[3];      /*目的网卡地址*/
                 uint destip[2];          /*目的IP地址*/


                };

  struct icmp {/*包含在IP包中,是IP的上层为0X01的应用*/
                uint head[9];     /*以太网头*/
                uint iphead[10];  /*IP头*/
                uchar type;  /*0X08 PING请求 0X00 PING应答*/
                uchar option; /*0X00 PING*/
                uint crc;
                uint id;
                uint seq;
                uchar icmpdata[1513];


              };
  struct tcp { uint head[9];
               uint iphead[10];
               uint sourceport; /*源端口*/
               uint destport;   /*目的端口*/
               union w seqnumber; /*顺序号*/
               union w acknumber;  /*确认号*/
               uchar offset;       /*数据偏移量*/
               uchar control;     /*连接控制*/
               uint window;      /*流控*/
               uint crc;        /*校验和 ,包括伪头部,TCP头部,数据*/
               uint urg;         /*紧急指针*/
               uchar tcpdata[1507];    /*TCP数据*/
             };
  struct udp { uint head[9];
               uint iphead[10];
               uint sourceport; /*源端口*/
               uint destport;   /*目的端口*/
               uint udplength;      /*流控*/
               uint crc;        /*校验和 ,包括伪头部,TCP头部,数据*/
               uchar udpdata[1507];    /*TCP数据*/

             };

     /*所有协议的共用体*/
union netcard {struct {uchar  bytebuf[1536];}bytes;
               struct{ uint wordbuf[768];}words;
               struct ethernet etherframe;
               struct tcp   tcpframe;
               struct udp  udpframe;
               struct ip   ipframe;
               struct arp   arpframe;
               struct icmp  icmpframe;
               struct ippacket ippacket;
              };
小熊和二申公豹 [img]http://www.driverdevelop.com/forum/upload/w8zz/2003-08-11_黑爸.jpg[/img] 二哥,三娃儿,快帮忙!
tchtc2008
驱动牛犊
驱动牛犊
  • 注册日期2004-06-30
  • 最后登录2012-11-22
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望162点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-10-28 11:27
我在做这个工作。目标是在高速51上实现TCP UDP IP ARP,向上层提供API接口。目前还没有使用UCOS,但是计划采用。希望多联系。
游客

返回顶部