• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

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

    作者: 時間:2011-05-12 來源:網絡 收藏


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

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

    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 咸宁市| 思南县| 乐至县| 漯河市| 阳春市| 孟州市| 长顺县| 嵊州市| 昆明市| 综艺| 株洲市| 武汉市| 班玛县| 普定县| 黔西县| 金乡县| 平潭县| 奉化市| 旬阳县| 普安县| 玉屏| 石狮市| 馆陶县| 赫章县| 福州市| 洞口县| 北辰区| 平顺县| 南京市| 丹寨县| 枣强县| 北川| 特克斯县| 隆尧县| 湟源县| 交城县| 外汇| 灵山县| 杭锦旗| 宁南县| 无锡市|