自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

LwIP協(xié)議棧的實(shí)現(xiàn)

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
lwIP是TCP/IP協(xié)議棧的一個(gè)實(shí)現(xiàn)。lwIP協(xié)議棧主要關(guān)注的是怎么樣減少內(nèi)存的使用和代碼的大小,這樣就可以讓lwIP適用于資源有限的小型平臺(tái)例如嵌入式系統(tǒng),如下給大家介紹一下LwIP協(xié)議棧的實(shí)現(xiàn)。

lwIP是TCP/IP協(xié)議棧的一個(gè)實(shí)現(xiàn)。lwIP協(xié)議棧主要關(guān)注的是怎么樣減少內(nèi)存的使用和代碼的大小,這樣就可以讓lwIP適用于資源有限的小型平臺(tái)例如嵌入式系統(tǒng)。為了簡(jiǎn)化處理過程和內(nèi)存要求,lwIP對(duì)API進(jìn)行了裁減,可以不需要復(fù)制一些數(shù)據(jù)。

LwIP是LightWeight(輕型)IP協(xié)議,有無操作系統(tǒng)的支持都可以運(yùn)行。LwIP實(shí)現(xiàn)的重點(diǎn)是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對(duì)RAM的占用,一般它只需要幾百字節(jié)的RAM和40K左右的ROM就可以運(yùn)行,這使LwIP協(xié)議棧適合在低端的嵌入式系統(tǒng)中使用。

其主要特性如下:

支持多網(wǎng)絡(luò)接口下的IP轉(zhuǎn)發(fā);

支持ICMP協(xié)議;

包括實(shí)驗(yàn)性擴(kuò)展的UDP(用戶數(shù)據(jù)報(bào)協(xié)議);

包括阻塞控制、RTT估算、快速恢復(fù)和快速轉(zhuǎn)發(fā)的TCP(傳輸控制協(xié)議);

提供專門的內(nèi)部回調(diào)接口(RawAPI),用于提高應(yīng)用程序性能;

可選擇的Berkeley接口API(在多線程情況下使用)。

(1)信號(hào)量

LwIP中需要使用信號(hào)量進(jìn)行通信,所以在sys_arch中應(yīng)實(shí)現(xiàn)相應(yīng)的信號(hào)量結(jié)構(gòu)體structsys_semt和處理函數(shù)sys_sem_new()、sys_sem_free()、sys_sem_signal()和sys_arch_sem_wait()。由于μC/OS已經(jīng)實(shí)現(xiàn)了信號(hào)量OSEVENT的各種操作,并且功能和LwIP上面幾個(gè)函數(shù)的目的功能是完全一樣的,所以只要把μC/OS的函數(shù)重新包裝成上面的函數(shù),就可直接使用。

(2)消息隊(duì)列

LwIP使用消息隊(duì)列來緩沖、傳遞數(shù)據(jù)報(bào)文,因此要實(shí)現(xiàn)消息隊(duì)列結(jié)構(gòu)sys_mbox_t,以及相應(yīng)的操作函數(shù):sys_mbox_new()、sys_mbox_free()、sys_mbox_post()和sys_arch_mbox_fetch()。μC/OS實(shí)現(xiàn)了消息隊(duì)列結(jié)構(gòu)及其操作,但是μC/OS沒有對(duì)消息隊(duì)列中的消息進(jìn)行管理,因此不能直接使用,必須在μC/OS的基礎(chǔ)上重新實(shí)現(xiàn)。具體實(shí)現(xiàn)時(shí),對(duì)隊(duì)列本身的管理利用μC/OS自己的OSQ操作完成,然后使用μC/OS中的內(nèi)存管理模塊實(shí)現(xiàn)對(duì)消息的創(chuàng)建、使用、刪除和回收,兩部分綜合起來形成了LwIP的消息隊(duì)列功能。

(3)定時(shí)器函數(shù)

LwIP中每個(gè)和TCP/IP相關(guān)的任務(wù)的一系列定時(shí)事件組成一個(gè)單向鏈表,每個(gè)鏈表的起始指針存在lwip_timeouts的對(duì)應(yīng)表項(xiàng)中,如圖2所示。移植時(shí)需要實(shí)現(xiàn)structsys_timeouts*sys_arch_timeouts(void)函數(shù),該函數(shù)返回目前正處于運(yùn)行態(tài)的線程所對(duì)應(yīng)的timeout隊(duì)列指針。

(4)創(chuàng)建新線程函數(shù)

在μC/OS中,沒有線程(thread)的概念,只有任務(wù)(Task)。它提供了創(chuàng)建新任務(wù)的系統(tǒng)API調(diào)用OSTaskCreate,因此只要把OSTaskCreate封裝一下,就可以實(shí)現(xiàn)sys_thread_new。需要注意的是LwIP中的thread并沒有μC/OS中優(yōu)先級(jí)的概念,實(shí)現(xiàn)時(shí)要由用戶事先為L(zhǎng)wIP中創(chuàng)建的線程分配好優(yōu)先級(jí)。

【編輯推薦】

  1. 嵌入式平臺(tái)中配置雙協(xié)議棧的問題
  2. VxWorks網(wǎng)絡(luò)協(xié)議棧體系全解
  3. 簡(jiǎn)析嵌入式IPv6協(xié)議棧
  4. 深度剖析TCP IP協(xié)議棧的各個(gè)層次
責(zé)任編輯:于爽 來源: hi.baidu.com
相關(guān)推薦

2011-11-08 15:40:47

LwIP協(xié)議棧嵌入式

2019-06-14 06:32:54

LwIP網(wǎng)絡(luò)協(xié)議物聯(lián)網(wǎng)

2019-06-25 08:13:55

LwIP網(wǎng)絡(luò)協(xié)議物聯(lián)網(wǎng)

2010-05-26 14:12:06

IPv6協(xié)議

2011-11-10 09:43:14

ZigBee協(xié)議棧網(wǎng)絡(luò)層

2010-09-09 13:09:33

協(xié)議棧開發(fā)

2010-06-19 13:32:36

TCP IP協(xié)議棧

2010-06-19 14:10:35

TCP IP協(xié)議棧

2010-06-17 15:23:38

WAP協(xié)議棧

2010-05-26 14:06:22

IPv6協(xié)議棧

2010-09-10 09:52:44

開源協(xié)議棧

2010-09-09 13:30:03

Linux網(wǎng)絡(luò)協(xié)議棧

2010-09-08 12:16:18

2010-06-11 14:15:23

WAP協(xié)議棧

2010-09-08 15:34:27

TCP IP協(xié)議棧

2010-06-17 15:19:52

WAP協(xié)議棧

2010-09-09 13:19:47

H.323協(xié)議協(xié)議棧開發(fā)

2010-09-08 15:06:26

藍(lán)牙協(xié)議棧

2010-09-08 14:59:27

藍(lán)牙協(xié)議棧

2010-09-08 18:09:01

雙協(xié)議棧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)