音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

我對lwip內(nèi)存管理的改進(jìn)

作者:eleven11 欄目:ARM技術(shù)
我對lwip內(nèi)存管理的改進(jìn)
lwip是一個十分優(yōu)秀的tcp協(xié)議棧,擁有完整的流控算法,而且從網(wǎng)卡到應(yīng)用程序,數(shù)據(jù)只經(jīng)過了2次拷貝,網(wǎng)卡-》ip內(nèi)存->應(yīng)用程序,速度相當(dāng)快

但lwip的內(nèi)存管理卻必須由用戶在移植的時候仔細(xì)考慮,這也正是lwip之所以需要比較大內(nèi)存的原因,對lwip內(nèi)存管理進(jìn)行改進(jìn)可以去處碎片問題和內(nèi)存塊數(shù)目數(shù)量的估算,

網(wǎng)絡(luò)通信中只傳遞2種數(shù)據(jù),發(fā)送數(shù)據(jù)和接收數(shù)據(jù),lwip采用pbuf鏈表的方式,所以發(fā)送包要遠(yuǎn)遠(yuǎn)小于接受包的大小,我們首先統(tǒng)一接受包的大小為以太網(wǎng)最大包,同時采用接受包兼容發(fā)送包的格式,包的頭部信息相同,同時發(fā)送包下一個包的頭部信息在內(nèi)存空間上被緊貼在第一個包信息+數(shù)據(jù)之后,這樣一個接受包大致等于18個發(fā)送包的大小,當(dāng)分配一個接受包時,就分配一個統(tǒng)一大小的接受包,當(dāng)分配一個發(fā)送包的時候,就將一個接受包分割成18個發(fā)送包,分配其中一個,其余的放入空閑鏈表下次分配,回收的時候當(dāng)18個發(fā)送包都被釋放,那么在合成一個空閑的接受包

lwip同時還要維護(hù)等待鏈表,未應(yīng)答鏈表,定時器鏈表,這些都是分配對應(yīng)的內(nèi)存塊,我們在包的信息上添加struct ×pnext的一個域,插入,移出鏈表的時候之間用該域來操作,這樣就不需要分配不同數(shù)目的內(nèi)存塊了

通過以上改進(jìn),lwip的效率進(jìn)一步提高,解決了碎片問題,省去了內(nèi)存查找的時間,也不需要在考慮不同內(nèi)存塊的需求數(shù)目,而rom和ram的需求進(jìn)一步縮小,改進(jìn)后的內(nèi)存分配代碼在ads上編譯只需要400字節(jié)(無os)

* - 本貼最后修改時間:2006-10-11 17:52:28 修改者:eleven11

2樓: >>參與討論
twentyone
THX
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
幫我看看這些是什么東東!多謝!
問一個弱智問題:所有的ARM9
強勁的PXA255開發(fā)板
想買塊開發(fā)板學(xué)ARM+LINUX
philips2294開發(fā)板原理圖
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號