新聞中心

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

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

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


        6、應(yīng)用實(shí)例的建立和測(cè)試
        做完上面的移植修改工作以后,就可以在 中初始化,并創(chuàng)建TCP或UDP任務(wù)進(jìn)行測(cè)試了。這部份完全是C語(yǔ)言的,因此這部份在ez80和ARM7上基本都是一樣的。值得注意的是的初始化必須在 完全啟動(dòng)之后也就是在任務(wù)中進(jìn)行,因?yàn)樗某跏蓟玫搅诵盘?hào)量等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)先級(jí)0)和usr_task用戶任務(wù)(優(yōu)先級(jí)20)。lwip_init_task任務(wù)中除了初始化硬件時(shí)鐘和LwIP之外,還創(chuàng)建了tcpip_thread(優(yōu)先級(jí)5)和tcpecho_thread(優(yōu)先級(jí)6)。實(shí)際上tcpip_thread才是LwIP的主線程,多線程的Berkley API也是基于這個(gè)線程的,即上面的tcpecho_thread線程也要依靠tcpip_thread線程來(lái)與外界通信,這樣做的好處是編程簡(jiǎn)單,結(jié)構(gòu)清晰。
        實(shí)用Berkley API的tcpecho_thread是一個(gè)TCP echo服務(wù)器,監(jiān)聽(tīng)7號(hào)端口,程序框架如下:
        void tcpecho_thread(void *arg){
        conn = netconn_new(NETCONN_TCP); //創(chuàng)建新的連接標(biāo)識(shí)
        netconn_bind(conn, NULL, 7); //綁定到7號(hào)端口
        netconn_listen(conn); //開(kāi)始監(jiān)聽(tīng)端口
        while(1){
        newconn = netconn_accept(conn); //接收外部到來(lái)的連接
        buf = netconn_recv(newconn) //獲取數(shù)據(jù)
        ……. //處理數(shù)據(jù)
        netconn_write(newconn, data, len, NETCONN_COPY); //發(fā)送數(shù)據(jù)
        netconn_delete(newconn); //釋放本次連接
        }
        }
        編譯運(yùn)行后,用ping ip地址命令可以得到ICMP reply響應(yīng)。用telnet ip地址 7(登錄7號(hào)端口)命令可以看到echo server的回顯效果。說(shuō)明ARP、ICMP、IP、TCP都已正確運(yùn)行。

        本文引用地址:http://www.104case.com/article/150753.htm

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

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 麻城市| 黑山县| 濮阳市| 文安县| 航空| 海晏县| 鄂托克前旗| 宝清县| 清远市| 措美县| 逊克县| 鲁甸县| 贵南县| 阜宁县| 灌云县| 长子县| 铜陵市| 舒兰市| 奎屯市| 广汉市| 镇平县| 金寨县| 将乐县| 新源县| 五莲县| 博客| 江川县| 林西县| 绥江县| 桂东县| 应用必备| 炎陵县| 云南省| 平度市| 民乐县| 霍山县| 黄冈市| 香格里拉县| 成安县| 南皮县| 托克托县|