出版社:機械工業出版社 ISBN:9787111635826 商品編碼:10029239621827 包裝:平裝 出版時間:2019-09-01 代碼:119 作者:劉火良,楊森
"基本信息 書名:LWIP應用開發實戰指南 基於STM32 代碼: 作者:劉火良,楊森 出版社:機械工業出版社 出版日期:2019-09-01 ISBN:9787111635826 字數: 頁碼:447 版次: 裝幀:平裝 開本:16開 商品重量: 編輯推薦
內容提要
本書以LwIP源碼為核心,講解TCP/IP協議棧的實現,講解常見的網絡協議,講解LwIP各層之間的數據傳遞,終輔以實戰案例,教你如何連接各大雲平臺,配套野火STM32 M4/M7繫列開發板,提供完整源代碼,極具操作性。 目錄
前言 n 章網絡協議概述 1 n 1.1常用網絡協議 1 n 1.2網絡協議的分層模型 2 n 1.3協議層報文間的封裝與拆封 3 n 第2章LwIP概述 5 n 2.1LwIP的優缺點 5 n 2.2LwIP的文件說明 6 n 2.2.1獲取LwIP源碼文件 6 n 2.2.2LwIP文件說明 8 n 2.3LwIP的說明文檔 11 n 2.4使用vs code查看源碼 14 n 2.4.1查看文件中的符號列表和函數列表 14 n 2.4.2函數定義跳轉 15 n 2.5LwIP源碼裡的示例 16 n 2.6LwIP的3種編程接口 17 n 2.6.1RAW/Callback API 17 n 2.6.2Netconn API 18 n 2.6.3Socket API 19 n 第3章開發平臺 20 n 3.1以太網概述 20 n 3.1.1PHY層 20 n 3.1.2MAC子層 21 n 3.2STM32的ETH外設 23 n 3.3MII和RMII接口 24 n 3.4PHY:LAN8720A 25 n 3.5硬件設計 27 n 3.6軟件設計 29 n 3.6.1獲取STM32的裸機工程模板 29 n 3.6.2添加bsp_eth.c與bsp_eth.h 29 n 3.6.3修改stm32f4xx_hal_conf.件 35 n 第4章LwIP的網絡接口管理 37 n 4.1if結構體 37 n 4.2if的使用 41 n 4.3與if相關的底層函數 45 n 4.4etherif.c文件內容 46 n 4.4.1etherif數據結構 46 n 4.4.2etherif_init 47 n 4.4.3low_level_init 48 n 第5章LwIP的內存管理 50 n 5.1幾種內存分配策略 50 n 5.1.1固定大小的內存塊 50 n 5.1.2可變長度分配 51 n 5.2動態內存池 52 n 5.2.1內存池的預處理 52 n 5.2.2內存池的初始化 57 n 5.2.3內存分配 58 n 5.2.4內存釋放 59 n 5.3動態內存堆 61 n 5.3.1內存堆的組織結構 61 n 5.3.2內存堆初始化 62 n 5.3.3內存分配 64 n 5.3.4內存釋放 67 n 5.4使用C庫的malloc和free函數來管理內存 71 n 5.5LwIP中的配置 72 n 第6章網絡數據包 74 n 6.1TCP/IP的分層思想 74 n 6.2LwIP的線程模型 75 n 6.3pbuf結構體說明 76 n 6.4pbuf的類型 77 n 6.4.1PBUF_RAM類型的pbuf 78 n 6.4.2PBUF_POOL類型的pbuf 78 n 6.4.3PBUF_ROM和PBUF_REF類型的pbuf 80 n 6.5pbuf_alloc 81 n 6.6pbuf_free 84 n 6.7其他pbuf操作函數 88 n 6.7.1pbuf_realloc 88 n 6.7.2pbuf_header 88 n 6.7.3pbuf_take、pbuf_copy、pbuf_chain和pbuf_ref 88 n 6.8網卡中使用的pbuf 88 n 6.8.1low_level_output 88 n 6.8.2low_level_input 91 n 6.8.3etherif_input 93 n 第7章無操作繫統移植LwIP 94 n 7.1將LwIP添加到裸機工程 94 n 7.2移植頭文件 97 n 7.3移植網卡驅動 103 n 7.4LwIP時基 111 n 7.5協議棧初始化 112 n 7.6獲取數據包 114 n 7.6.1查詢方式 114 n 7.6.2ping命令詳解 115 n 7.6.3中斷方式 116 n 第8章有操作繫統移植LwIP 119 n 8.1向LwIP中添加操作繫統 119 n 8.1.1復制FreeRTOS源碼到工程文件夾 119 n 8.1.2添加FreeRTOS源碼到工程組文件夾 120 n 8.1.3指定FreeRTOS頭文件的路徑 120 n 8.1.4修改stm32f10x_it.c 121 n 8.2lwipopts.件需要加入的配置 122 n 8.3sys_arch.c/件的編寫 126 n 8.4網卡底層的編寫 136 n 8.5協議棧初始化 138 n 8.6移植後使用ping命令測試基本響應 141 n 第9章LwIP一探究竟 142 n 9.1網卡數據傳入LwIP內核的流程 142 n 9.2內核超時處理 142 n 9.2.1sys_timeo結構體與超時鏈表 144 n 9.2.2注冊超時事件 144 n 9.2.3超時檢查 147 n 9.3tcpip_thread線程 149 n 9.4LwIP中的消息 151 n 9.4.1消息結構 151 n 9.4.2數據包消息 153 n 9.4.3API消息 154 n 9.5揭開LwIP的神秘面紗 158 n 0章ARP 159 n 10.1數據鏈路層概述 159 n 10.2MAC地址的基本概念 159 n 10.3初識ARP 160 n 10.4以太網幀結構 160 n 10.5IP地址映射為物理地址 161 n 10.6ARP緩存表 162 n 10.7ARP緩存表的超時處理 165 n 10.8ARP報文 167 n 10.9發送ARP請求包 170 n 10.10數據包接收流程 172 n 10.10.1以太網中數據包的接收 172 n 10.10.2ARP數據包處理 176 n 10.10.3更新ARP緩存表 178 n 10.11數據包發送流程 182 n 10.11.1etharp_output 182 n 10.11.2etharp_output_to_arp_index 185 n 10.11.3etharp_query 186 n 1章IP 193 n 11.1IP地址 193 n 11.1.1概述 193 n 11.1.2IP地址編址 193 n 11.1.3特殊IP地址 195 n 11.2局域網和廣域網的概念 196 n 11.2.1局域網 196 n 11.2.2廣域網 196 n 11.3網絡地址轉換 197 n 11.4IP數據報 198 n 11.5IP數據報的數據結構 202 n 11.6IP數據報分片 204 n 11.7IP數據報發送 208 n 11.8IP數據報接收 214 n 2章ICMP 222 n 12.1ICMP功能簡介 222 n 12.2ICMP報文結構 223 n 12.3ICMP報文類型 224 n 12.3.1ICMP差錯報告報文 224 n 12.3.2ICMP查詢報文 226 n 12.4LwIP中的ICMP實現 227 n 12.4.1ICMP報文數據結構 227 n 12.4.2發送ICMP差錯報文 229 n 12.4.3處理ICMP報文 231 n 3章TCP 235 n 13.1TCP服務概述 235 n 13.2TCP的特性 235 n 13.2 作者介紹
序言
" |