<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > LwIP協(xié)議棧在uCOS II下的實(shí)現

LwIP協(xié)議棧在uCOS II下的實(shí)現

作者: 時(shí)間:2011-05-12 來(lái)源:網(wǎng)絡(luò ) 收藏


6、應用實(shí)例的建立和測試
做完上面的移植修改工作以后,就可以在 中初始化,并創(chuàng )建TCP或UDP任務(wù)進(jìn)行測試了。這部份完全是C語(yǔ)言的,因此這部份在ez80和ARM7上基本都是一樣的。值得注意的是的初始化必須在 完全啟動(dòng)之后也就是在任務(wù)中進(jìn)行,因為它的初始化用到了信號量等OS相關(guān)的操作。關(guān)鍵部份的代碼和說(shuō)明如下:
void start_kernel(void)
{
int LineNo10 = 0;
int LineNo11 = 1;
int LineNo12 = 2;
int LineNo13 = 3;
int LineNo14 = 4;

OSInit();
OSTaskCreate(lwip_init_task, LineNo10, lwip_init_stk[TASK_STK_SIZE-1], 0);
OSTaskCreate(usr_task,LineNo14,usr_stk[TASK_STK_SIZE-1],20);
vRTCStart();
OSStart();
/* NEVER EXECUTED */
while(1);
}
主程序中創(chuàng )建了lwip_init_task初始化任務(wù)(優(yōu)先級0)和usr_task用戶(hù)任務(wù)(優(yōu)先級20)。lwip_init_task任務(wù)中除了初始化硬件時(shí)鐘和LwIP之外,還創(chuàng )建了tcpip_thread(優(yōu)先級5)和tcpecho_thread(優(yōu)先級6)。實(shí)際上tcpip_thread才是LwIP的主線(xiàn)程,多線(xiàn)程的Berkley API也是基于這個(gè)線(xiàn)程的,即上面的tcpecho_thread線(xiàn)程也要依靠tcpip_thread線(xiàn)程來(lái)與外界通信,這樣做的好處是編程簡(jiǎn)單,結構清晰。
實(shí)用Berkley API的tcpecho_thread是一個(gè)TCP echo服務(wù)器,監聽(tīng)7號端口,程序框架如下:
void tcpecho_thread(void *arg){
conn = netconn_new(NETCONN_TCP); //創(chuàng )建新的連接標識
netconn_bind(conn, NULL, 7); //綁定到7號端口
netconn_listen(conn); //開(kāi)始監聽(tīng)端口
while(1){
newconn = netconn_accept(conn); //接收外部到來(lái)的連接
buf = netconn_recv(newconn) //獲取數據
……. //處理數據
netconn_write(newconn, data, len, NETCONN_COPY); //發(fā)送數據
netconn_delete(newconn); //釋放本次連接
}
}
編譯運行后,用ping ip地址命令可以得到ICMP reply響應。用telnet ip地址 7(登錄7號端口)命令可以看到echo server的回顯效果。說(shuō)明ARP、ICMP、IP、TCP都已正確運行。

本文引用地址:http://dyxdggzs.com/article/150753.htm

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 實(shí)現 II uCOS 協(xié)議 LwIP

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>