<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 網(wǎng)絡(luò)與存儲 > 設(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 來源:電子產(chǎn)品世界 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/81179.htm

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

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

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

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

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

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




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

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();