新聞中心

EEPW首頁(yè) > 網(wǎng)絡(luò)與存儲(chǔ) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式TCP/IP軟件體系結(jié)構(gòu)的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)(06-100)

基于嵌入式TCP/IP軟件體系結(jié)構(gòu)的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)(06-100)

——
作者:北京郵電大學(xué) 電信工程學(xué)院 廖日坤 紀(jì)越峰 時(shí)間:2008-04-03 來(lái)源:電子產(chǎn)品世界 收藏

  另外,一般采用C語(yǔ)言或者混合匯編,而使用可重入函數(shù)和一般指針(generic pointer)使得程序代碼增大,運(yùn)行速度變慢。所以使用函數(shù)指針時(shí),應(yīng)手動(dòng)重建調(diào)用樹(shù)(Call tree),或?qū)⒑瘮?shù)指針調(diào)用的函數(shù)設(shè)置為可重入函數(shù),同時(shí)使用“指定存儲(chǔ)類(lèi)型”的指針(memory-specific pointer),防止數(shù)據(jù)包的不必要的拷貝以及優(yōu)化計(jì)算校驗(yàn)和和內(nèi)存拷貝函數(shù)。另外,Reentrant類(lèi)型的函數(shù)比一般函數(shù)速度要慢很多,但是某些時(shí)候?yàn)榱顺绦蚪Y(jié)構(gòu)的需要必須使用Reentrant,這就需要在速度和結(jié)構(gòu)之間作一個(gè)選擇。

本文引用地址:http://2s4d.com/article/81179.htm

  嵌入式的實(shí)現(xiàn)

  的嵌入式實(shí)現(xiàn)一般通過(guò)以軟件方式嵌入到ROM中,然后通過(guò)輕通訊技術(shù)與專(zhuān)用嵌入式網(wǎng)關(guān)連接,在嵌入式處理器中運(yùn)行TCP/IP協(xié)議,提供TCP/IP到用戶的輕型的連接和路由功能。

  內(nèi)存管理方法和無(wú)多余數(shù)據(jù)包拷貝的實(shí)現(xiàn)

  嵌入式TCP/IP的內(nèi)存管理可以用鏈表方法,即根據(jù)數(shù)據(jù)包大小分配相應(yīng)大小的內(nèi)存塊。如圖4所示,鏈表將內(nèi)存塊鏈接起來(lái),used字段表示該內(nèi)存塊是否正在使用,pSstart和pEend則表示數(shù)據(jù)部分有效數(shù)據(jù)的開(kāi)始地址和結(jié)束地址。

  分配時(shí),搜索內(nèi)存鏈表找到一個(gè)沒(méi)有分配的比所需空間大的內(nèi)存塊,截取所需的大小。該內(nèi)存塊被截取以后可能還有較多剩余,這時(shí)將剩余部分從原內(nèi)存塊中分離出來(lái),成為一個(gè)新的內(nèi)存塊,并插入鏈表。釋放時(shí),將used值置為假,如果pNext或者pPre指向的鏈表單元也是空閑的,則將其和自己合并,以防止內(nèi)存分片。在協(xié)議層之間傳送數(shù)據(jù)包只需傳送內(nèi)存塊的起始地址。這種內(nèi)存管理方法空間浪費(fèi)小但是運(yùn)算量相對(duì)較大。

tcp/ip相關(guān)文章:tcp/ip是什么




關(guān)鍵詞: 網(wǎng)絡(luò) TCP/IP Internet

評(píng)論


相關(guān)推薦

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

關(guān)閉