No.6443 作者:jingzhu420 邮件:lijingzhu123489@163.com ID:81991 登陆:12次 文章数:7篇 最后登陆IP:116.22.78.154 最后登陆:2008/4/15 13:22:06 注册:2007/7/2 11:52:24 财富:146 发帖时间:2007/7/16 11:16:24 发贴者IP:219.137.54.133 标题:jingzhu420:求助!!lwip移植后PING不通,请高手帮忙看一下,问题可能出在哪里? 摘要:No.6443求助!!lwip移植后PING不通,请高手帮忙看一下,问题可能出在哪里? 求助!!lwip移植后PING不通,请高手帮忙看一下,问题可能出在哪里? #define TASK_STK_SIZE 4096 // Stack size, in size of SO_STK, or int // task prio 1 for lwip init( it also init hardware and timer task ) OS_STK lwip_init_stk[TASK_STK_SIZE]; // lwip stacks // user task start from prio 3!!!! OS_STK usr_stk[TASK_STK_SIZE]; // user Task stack // Prototypes void hardware_init(void); void usr_task(void * pParam); void lwip_init_task(void *pParam); void tcpip_init_done(void *arg); void Sleep(INT16U uSec); void tcpecho_init(void); /*-----------------------------------------------------------------------------------*/ int main(void) { OSInit(); OSTaskCreate(lwip_init_task, NULL, &lwip_init_stk[TASK_STK_SIZE-1], 0); OSTaskCreate(usr_task, NULL,&usr_stk[TASK_STK_SIZE-1],1); OSStart(); return 0; } /*-----------------------------------------------------------------------------------*/ // This function never returns. void usr_task(void * pParam) { while(1){ Sleep(5); } } /*-----------------------------------------------------------------------------------*/ void lwip_init_task(void * pParam) { struct ip_addr ipaddr, netmask, gw; sys_sem_t sem; static struct netif *mynetif; hardware_init(); #ifdef STATS stats_init(); #endif /* STATS */ sys_init(); mem_init(); memp_init(); pbuf_init(); //mainthread netif_init(); sem = sys_sem_new(0); tcpip_init(tcpip_init_done, &sem); sys_sem_wait(sem); sys_sem_free(sem); //add ne2k interface IP4_ADDR(&gw, 192,168,0,1); IP4_ADDR(&ipaddr, 192,168,0,174); IP4_ADDR(&netmask, 255,255,255,0); mynetif = netif_add(mynetif, &ipaddr, &netmask, &gw, NULL, NicInit, tcpip_input); netif_set_default(mynetif); netif_set_up(mynetif); tcpecho_init(); /* Block for ever. */ sem = sys_sem_new(0); sys_sem_wait(sem); } /*-----------------------------------------------------------------------------------*/ void tcpip_init_done(void *arg) { sys_sem_t *sem; sem = arg; sys_sem_signal(*sem); } /*-----------------------------------------------------------------------------------*/ void Sleep(INT16U uSec) { OSTimeDly((INT16U) (uSec) * 10); } /*-----------------------------------------------------------------------------------*/ static void tcpecho_thread(void *arg) { struct netconn *conn, *newconn; err_t err; /* Create a new connection identifier. */ conn = netconn_new(NETCONN_TCP); /* Bind connection to well known port number 7. */ netconn_bind(conn, NULL, 7); /* Tell connection to go into listening mode. */ netconn_listen(conn); while(1) { /* Grab new connection. */ newconn = netconn_accept(conn); /*printf("accepted new connection %p\n", newconn);*/ /* Process the new connection. */ if(newconn != NULL) { struct netbuf *buf; void *data; u16_t len; while((buf = netconn_recv(newconn)) != NULL) { do { netbuf_data(buf, &data, &len); err = netconn_write(newconn, data, len, NETCONN_COPY); if(err != ERR_OK) { } } while(netbuf_next(buf) > = 0); netbuf_delete(buf); } /* Close connection and discard connection identifier. */ netconn_delete(newconn); } } } /*-----------------------------------------------------------------------------------*/ void tcpecho_init(void) { sys_thread_new(tcpecho_thread, NULL); } /*-----------------------------------------------------------------------------------*/ void hardware_init(void) { TargetInit(); //目标板初始化 Irq_Init(); //中断初始化 } /*---------------- ......
>>返回讨论的主题
|