国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

LwIP 內存配置

發布時間:2016-9-8 14:02    發布者:小融一號
關鍵詞: 內存配置 , 融創芯城


前言
LwIP 在 lwipopts.h 和 opt.h 頭文件中提供了多個配置選項。用戶可以根據不同的性能需求和不同應用的內存限制對協議棧用到的內存配置進行調節。Opt.h 頭文件中包括協議使能和設置,內存設置,調試選項等等。而 Lwipopts.h 頭文件中集合了opt.h 中一些常常需要改動的部分。一般情況下用戶對 lwipopts.h 頭文件進行修改就可以了。不管是對lwipopts.h 還是opt.h進行修改,都必須保證是在已經對你所改動的內容足夠的了解的情況下進行,所做的改動是正確的,否則有可能導致協議棧 不能正常工作,或者效率低下。

LwIP 的內存管理機制
在進行內存配置之前,我們有必要先了解LwIP 的內存管理機制。
   Lwip 動態內存管理
LwIP 中可以使用兩種動態內存分配的方法:Heap 和 Pool 的方式。
Heap 的方式,每次都根據你實際需要的大小分配一塊內存出來用,用完以后再還回去。
Pool 的方式則是,預先將內存等分成若干份,每次分配時都拿出其中的一塊或幾塊來。假設每等份是 256bytes,而你需要300bytes 的內存空間,Pool 的方式就會給你分配兩個256bytes 的內存塊(一共 512bytes)。雖然有點浪費,但這種方式分配內存速度很快,非常適合在接收數據時使用。

對于 Heap 的方式,程序默認是使用LwIP 提供的mem_malloc/mem_free 進行內存的分配和釋放。這種方式下,程序需要預先分配一段內存空間用來做heap 分配,這段預留的空間大小通過 MEM_SIZE 定義。

你也可以通過 C 標準庫里的 malloc/free 函數進行內存的分配和釋放。需要定義宏 MEM_LIBC_MALLOC。

   Pbuf 類型
      前面說的 Heap 和 Pool 都是 LwIP 動態分配內存的方式。而 LwIP 采用了 pbuf 的形式管理內存中的信息,pbuf 結構既支持動 態內存分配保存信息包內容,也支持讓信息包數據駐留在靜態存儲區。pbufs 可以在一個鏈表中鏈接在一起,被稱作一個pbuf 鏈,這樣一個信息包可以跨越幾個pbufs。

LwIP 有三種類型的pbuf: PBUF_RAM, PBUF_ROM,PBUF_POOL。這三種類型擁有不同的使用目的。

·PBUF_RAM 類型的 pbuf 用于應用程序發送的數據被動態生成的情況。在這種情況下,pbuf 系統不僅為應用數據分配內 存,還要給為這些數據預置的包頭分配內存。包頭大小在編譯時是可配置的。MEM_SIZE 定義定義了這類 pbuf 的可用空 間大小。
·PBUF_ROM 類型的 pbuf 用于應用程序要發送的數據放置在應用程序管理的存儲區的情況。
·PBUF_POOL 主要用于網絡設備驅動層,因為分配一個 pbuf 的操作可以快速完成,所以非常適合用于中斷處理。
內存配置選項
1. 接收數據緩存的大小
網絡接口接收到數據包,通過以太網專用DMA 放到專門的緩沖區。然后在low_level_input 函數中,被拷貝到 PBUF_POOL 中,再將指向該 PBUF_POOL 的指針傳遞給LwIP 協議棧做進一步的處理。這里用于拷貝接收到的數據的 PBUF_POOL 的大 小由下面這兩個配置選項決定:PBUF_POOL_SIZE 和 PBUF_POOL_BUFSIZE。
PBUF_POOL_SIZE:定義可用的 PBUF_POOL 的個數
PBUF_POOL_BUFSIZE:定義每個 PBUF_POOL 的大小
PBUF_POOL_SIZE * PBUF_POOL_BUFSIZE 的值就是接收數據內存總的大小用戶需要根據接收的數據包的平均大小來設置這兩個值。PBUF_POOL_BUFSIZE 設置的太小,可能每個數據包都要多個pbuf 來保存;設置太大,很少的數據也會占用一個較大的pbuf 造成浪費。

2.發送數據緩存的大小
LwIP 通過 Heap 的方式可分配的總內存空間大小由MEM_SIZE 定義,如果應用程序需要發送大量數據,而且這些數據需要拷 貝到 LwIP 協議棧中,那么這個值盡量設置大些。

3.連接
LwIP 協議棧中通過 PCB(Protocol Control Blocks)的方式管理各個連接。創建新的PCB 時,也是通過memory pool 的方式進行內存分配。MEMP_NUM_UDP_PCB:定義可以創建的 UDP 連接個數 MEMP_NUM_TCP_PCB:定義可以創建的 TCP 連接個數
MEMP_NUM_TCP_PCB_LISTEN:可以創建 listening TCP 連接的個數
MEMP_NUM_NETCONN:使用 netconn 和socket 編程時,該值的大小會影響可以同時創建的連接的個數
MEMP_NUM_NETBUF:使用 netconn 和 socket 編程時,該值設置太小,可能導致接收數據時分配內存失敗,從而不能同時為幾個連接的數據收發服務。

4. TCP 選項
TCP_MSS :該值規定了TCP 數據包數據部分的最大長度
TCP_SND_BUF:一個TCP 連接的發送緩存空間大小。改變這個值只影響一個TCP 連接可用的發送緩存空間大小。總的發送緩存空間是不會變的(由 MEM_SIZE 決定)。如果同時活動的TCP 連接個數很多,這個值不宜設置的太大。
TCP_SND_QUEUELEN:TCP 發送隊列中最多的pbuf 個數
TCP_WND:TCP 接收窗口大小

配置正確性檢查
LwIP 中的很多配置并不是孤立的,在 lwipopts.h 和 opt.h 的某些配置選項前面都有說明需要滿足的條件。在修改這些參數時 需要特別注意。另外 LwIP 還提供了“sanity checks”,在編譯時(LwIPv1.4.1,之前的版本是在 lwip_sanity_check 函數中進 行檢查)對 lwipopts.h 和opt.h 中的一些關鍵的配置進行檢查,如果發現錯誤就會通過error 信息進行提示。該功能可以通過宏LWIP_DISABLE_MEMP_SANITY_CHECKS 關閉,建議在調試時打開。

另外一個可以在配置LwIP 眾多選項時給你提供幫助的工具就是CubeMX。CubeMX 里的LwIP 配置頁面對每個選項都做了詳細解釋,包括建議的最大/最小值。見下圖:

重要通知 - 請仔細閱讀
意法半導體公司及其子公司(“ST”)保留隨時對ST 產品和/ 或本文檔進行變更、更正、增強、修改和改進的權利,恕不另行通知。買方訂貨之前應獲取關于ST 產品的最新信息。ST 產品的銷售依照訂單確認時的相關ST 銷售條款。
買方自行負責對ST 產品的選擇和使用, ST 概不承擔與應用協助或買方產品設計相關的任何責任。
ST 不對任何知識產權進行任何明示或默示的授權或許可。
轉售的ST 產品如有不同于此處提供的信息的規定,將導致ST 針對該產品授予的任何保證失效。
ST 和ST 徽標是ST 的商標。所有其他產品或服務名稱均為其各自所有者的財產。
本文檔中的信息取代本文檔所有早期版本中提供的信息。

© 2015 STMicroelectronics - 保留所有權利


文章來源:微信公眾號號  融創芯城  


本文地址:http://m.qingdxww.cn/thread-173406-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美一区二区三区中文精品 | 国产午夜亚洲精品不卡免下载 | 在线观看免费黄色 | 精品在线免费播放 | 日韩高清特级特黄毛片 | 窝窝社区在线观看www | 自拍视频在线看 | 欧美午夜片 | 亚洲资源在线观看 | 一级片免费在线 | 春意影院免费入口 | 99久久免费看国产精品 | 黄页在线观看 | 红纸鹤免费高清在线观看 | 精品国产九九 | 美女亚洲一区 | 日本一区二区不卡久久入口 | 嫩草影院永久在线一二三四 | 中文日本在线 | 国产精品五月天 | 天堂在线链接 | 久热亚洲| 成人精品一区二区三区中文字幕 | 欧美xxxxx九色视频免费观看 | 狠狠色丁香婷婷 | 欧美日韩国产亚洲一区二区 | 一区二区日韩欧美 | 三级黄色毛片 | 狠狠干夜夜操 | 99免费在线视频 | 日韩欧美三区 | 欧美一区二区三区成人看不卡 | 欧美成人免费在线观看 | 99精品国产自在现线免费下载 | 日韩欧美福利视频 | 国产免费精彩视频 | 国产片a国产片免费看视频 国产片a | 一级一级特黄女人精品毛片 | 国产三片高清在线观看 | 亚洲香蕉网久久综合影院3p | 在线免费观看福利 |