• 結構探索與研究-數控滾圓機滾弧機縮管機張家港液壓縮管機滾圓機
    作者:lujianjun | 來源:歐科機械 | 發布時間:2019-03-25 14:32 | 瀏覽次數:

    LwIP的本質就是對數據包的處理,在LwIP中利用不同類型的pbuf來對數據的處理進行一系列的管理。在此基礎上,主要是對pbuf的基本內存結構、內存類型、內存申請、內存釋放以及相對應的部分重要源代碼進行了研究與探索,分析了如何通過源代碼中的相關參數來改變內存池的個數以及尺寸大小,并在以Cortex-M3為內核的開發板上進行模擬PBUF_RAM類型內存的申請和釋放。這對更好地理解內存分配問題有很大的幫助,對以后更加靈活地運用pbuf結構來管理數據包奠定了基礎。 用程序發送和接收的數據可能會遠遠大于一個PBUF_POOL所存儲的數據量,而且內存池類型的內存分配每次分配到的大小是固定的,圖3所示一般需要多個PBUF_POOL類型并通過指針next指向下一個PBUF_POOL類型,從而使型鏈接成一個鏈表,用于存儲數據分組。雖然經過多次分配構成一個鏈表,結構探索與研究-數控滾圓機滾弧機縮管機張家港液壓縮管機滾圓機滾弧機但是它們仍然是一個數據包,因此只有第一個pbuf有offset來存儲有關數據包的信息,其余的則不需要。圖樣都是從內存池中申請得到的,本文有公司網站全自動縮管機采集轉載中國知網整理  http://www.bonjoourmarie.com 但是不同之處是它們使用的是內存池MEMP_PBUF。如圖4所示,這兩種類型的pbuf所圖4PBUF_ROM和PBUF_REF申請的內存主要是用來存放pbuf結構體結構探索與研究-數控滾圓機滾弧機縮管機張家港液壓縮管機滾圓機滾弧機,并沒有給數據空間申請內存,但是這兩個的數據空間可以應用其它地方的內存(RAM/ROM)進行數據存儲。3pbuf的釋放在對pbuf進行內存釋放的時候是通過調用來完成,當釋放pbuf的時候,LwIP會自動檢測pbuf的類型,然后再調用相關的函數進行相對應的刪除。但是在對其內存進行釋放的時候需要先滿足一定的條件,其中主要是通過檢測ref“”的大小,只有當ref的數值不型較多,而且在對數據管理的時候可能為多種類型混合使用,不易針對某個類型的pbuf進行單獨內存分配和釋放實驗。對該內存堆的操作類似于C語言中的]。所以該實驗主要是通過運用malloc/free函數在內部內存RAM分配和釋放內存的方式來模擬PBUF_RAM在RAM中的分配和釋放[16-18],并通過LCD進行字符串的存儲地址、寫入的字符串,以及RAM使用率的顯示。其中圖5、圖6中的SRAMINUSED字樣表示RAM的使用率,Addr用來表示數據存放的地址。通過圖5可以看出,當向內部內存RAM中寫入字符串“,其內存使用率為10%,存儲地址為0X200092C0,說明已經將字符串寫入到RAM中。圖6是對其內存釋放,可以看出其內存使用率減小,其地址變為0,表明將RAM中的數據進行了釋放,但是其內存使用率理論上應該為0,這里的5%就是內存碎片。由于嵌入式系統的內存空間是非常寶貴的,尤其對于數據的傳輸而言,如果每次傳輸都產生碎片,那就是資源的浪費。所以對pbuf結構的分析與探究是非常必要的。圖5內存申請圖6內存釋放結語通過對pbuf結構進行了探索和研究,并對其4種類型進行了代碼和圖表詳解,還分析了如何申請和釋放pbuf類型,最后對其內存的申請和釋放進行了模擬實驗,并且實驗效果和預期一樣,通過以上一系列的分析和操作,會對pbuf有更加清楚的認識,這對以后合理小于1的時候,pbuf才有可能被釋放,但不是一定會被釋放,當有其它類型的pbuf結構探索與研究-數控滾圓機滾弧機縮管機張家港液壓縮管機滾圓機滾弧機本文有公司網站全自動縮管機采集轉載中國知網整理  http://www.bonjoourmarie.com 

    真人无码作爱免费视频