QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2611|回复: 3

把lwip移植完了,但是写了个程序还是用不了。不知道怎么测试

[复制链接]
发表于 2006-6-28 10:45:07 | 显示全部楼层 |阅读模式
把lwip移植完了,但是写了个程序还是用不了。不知道怎么测试是否移植正确了?还是我的测试程序写的有问题?
#include "opt.h"
#include "mem.h"
#include "memp.h"
#include "sys.h"
#include "stats.h"
#include "tcpip.h"
#include "loopif.h"
//#include "netif/eth4510if.h"
//#include "netif/eth91c92if.h"
#include "ip_addr.h"
#include "debug.h"
#include "cs8900if.h"

#define LWIP_DEBUG 1
static void tcpip_init_done(void* arg)
{
  sys_sem_t *sem;
  sem = (sys_sem_t *)arg;
  sys_sem_signal(*sem);
}  


void LWIP_Main(void* arg)
{
  u8_t        err;
  struct ip_addr ipaddr, netmask, gw;
  sys_sem_t sem;
  struct netif *smcif,*loif;
//init the lwip
#ifdef STATS
  stats_init();
#endif /* STATS */
  sys_init();
  mem_init();
  memp_init();
  pbuf_init();
  
        //OSSemPend(ConsoleSem,0,&err);
        printf("==================System initialized.==================\r\n");
        //OSSemPost(ConsoleSem);
       
  netif_init();
  sem = sys_sem_new(0);
  tcpip_init(tcpip_init_done, &sem);
  sys_sem_wait(sem);
  sys_sem_free(sem);
  udp_init();
        //OSSemPend(ConsoleSem,0,&err);
          printf("==================TCP/IP initialized.==================\r\n");
          //OSSemPost(ConsoleSem);
          //init the loop if first,since the last append if would serv first
        IP4_ADDR(&gw, 127,0,0,1);
        IP4_ADDR(&ipaddr, 127,0,0,1);
        IP4_ADDR(&netmask, 255,0,0,0);
       
          // allocate netif structure   
        loif = mem_malloc(sizeof(struct netif));  
       
        netif_add(loif,&ipaddr, &netmask, &gw, NULL,loopif_init,tcpip_input);
        printf("================mem_malloced and netif_added ====================\r\n");
        netif_set_up(loif);
          //OSSemPend(ConsoleSem,0,&err);
          printf("==============Net Interface Attached==============\r\n");
          printf("==================127.0.0.1===================\r\n");
          //OSSemPost(ConsoleSem);
          
//dhcp is disabled  by yang
#if( LWIP_DHCP==1)
  {
    struct netif *netif;
    IP4_ADDR(&gw, 0,0,0,0);
    IP4_ADDR(&ipaddr, 0,0,0,0);
    IP4_ADDR(&netmask, 0,0,0,0);

    netif = netif_add(&ipaddr, &netmask, &gw, NULL, ethernetif_init,
                      tcpip_input);
    netif_set_default(netif);
    dhcp_init();
    dhcp_start(netif);
  }
#else
//  IP4_ADDR(&gw, 192,168,0,1);
//  IP4_ADDR(&ipaddr, 192,168,0,111);
//  IP4_ADDR(&netmask, 255,255,255,0);
  IP4_ADDR(&gw, 192,168,2,1);
  IP4_ADDR(&ipaddr, 192,168,2,123);
  IP4_ADDR(&netmask, 255,255,255,0);
  
  /* allocate netif structure */  
  smcif = mem_malloc(sizeof(struct netif));  
  
   printf("==============Before netif_set_default ==============\r\n");
  netif_set_default(netif_add(smcif,&ipaddr, &netmask, &gw,NULL,cs8900if_init,cs8900if_input));
      //here we add a flag_up to enable the netif
  netif_set_up(smcif);  
        //OSSemPend(ConsoleSem,0,&err);
  printf("==============Net Interface Attached==============\r\n");
  printf("==================192,168,2,123===================\r\n");
          //OSSemPost(ConsoleSem);
#endif
  
// udpecho_init();
  //tcpecho_init();

/*shell_init();
   tcpecho_init();
  httpd_init();
  udpecho_init();*/

//It's job is done,halt this task forever
        while(1)
        {
                OSTimeDly(OS_TICKS_PER_SEC*100);//block every hour //minite
        }

}
发表于 2006-6-28 18:48:54 | 显示全部楼层

把lwip移植完了,但是写了个程序还是用不了。不知道怎么测试

我是新手,请问你有UC/OS和LWIP移植的资料吗,谢谢
回复

使用道具 举报

 楼主| 发表于 2006-6-29 15:28:07 | 显示全部楼层
有啊.都是从网上搜到的,源码和一些文档.ucos的移植应该到处都是,但是lwip的我现在还搞不定,网卡驱动也估计有问题.
回复

使用道具 举报

发表于 2006-6-30 10:32:03 | 显示全部楼层

把lwip移植完了,但是写了个程序还是用不了。不知道怎么测试

你有没有杨晔的“LWIP在uC/OS II的移植”?
听说那个不错,可惜我下不到。
我用的是RTL8019AS网卡,那方面现成的驱动很多。
可惜我不知道怎么把操作系统和LWIP结合起来。
我的联系方式是[email protected]
我们可以交流一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 11:06 , Processed in 0.037099 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表