自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

物聯(lián)網(wǎng)高手應(yīng)備:網(wǎng)絡(luò)協(xié)議棧LwIP(一)

物聯(lián)網(wǎng) 網(wǎng)絡(luò)管理
上節(jié)我們對LwIp的目錄結(jié)構(gòu)已經(jīng)有了了解,我們這篇文件將就LwIp協(xié)議棧做更深一步的研究。

上節(jié)我們對LwIp的目錄結(jié)構(gòu)已經(jīng)有了了解,我們這篇文件將就LwIp協(xié)議棧做更深一步的研究。

[[268859]]

重要源文件解釋

LwIp的源碼源文件多達幾百個,我們?nèi)プx源碼的時候不能一下子全部讀完,我們在讀源碼時候需要有所重點的去讀,才能快速的把握LwIp的精髓。

API目錄是提供了Socket接口和Sequential API的接口,Socket.c實現(xiàn)了BSD socket的接口封裝,tcpip.c文件并沒有實現(xiàn)tcpip協(xié)議,實際上是Sequential API 主線程模塊的的實現(xiàn)。api_lib.c是Sequential API的接口的實現(xiàn)。

core目錄則是協(xié)議棧的核心,其中tcp.c ip.c,udp.c 則是整個tcp/ip協(xié)議棧的核心實現(xiàn),ip層還分為ipv4和ipv6兩個目錄,里面有ipv4 ipv6層的的具體實現(xiàn)。mem.c 和memp.c是內(nèi)存管理的核心實現(xiàn)。

netif目錄是接口部分,***的2.0版本和原來的1.4版本對以太網(wǎng)部分做了較大改動,ethernetif.c是以太網(wǎng)驅(qū)動文件,需要根據(jù)具體硬件來進行移植。ethernetif.c文件在1.4版本的是在本目錄下,2.0版本則放到用戶的目錄下。本目錄還有其他的接口文件如ppp協(xié)議的等。ethernet.c是對以太網(wǎng)報文的抽象出入口函數(shù)接口。

無操作系統(tǒng)移植和初始化

把LwIp移植到具體的網(wǎng)卡上和操作系統(tǒng)上需要一定的工作量,移植LwIp分操作系統(tǒng)移植和非操作系統(tǒng)移植,操作系統(tǒng)移植較為繁瑣,我們先討論非操作系統(tǒng)移植。

非操作系統(tǒng)移植主要是需要移植ethernetif.c文件。網(wǎng)卡的初始化要放在low_level_init函數(shù)內(nèi)執(zhí)行。low_level_init函數(shù)是配置MAC地址,物理網(wǎng)卡的初始化函數(shù)。調(diào)用流程如下

物聯(lián)網(wǎng)高手必備---網(wǎng)絡(luò)協(xié)議棧LwIP(三)

網(wǎng)卡初始化流程

low_level_init設(shè)置好物理網(wǎng)卡芯片的參數(shù)(mac地址,phy型號,mac接口類型,接收模式,自協(xié)商等等),把這些參數(shù)寫入到網(wǎng)卡芯片的寄存器中。

物聯(lián)網(wǎng)高手必備---網(wǎng)絡(luò)協(xié)議棧LwIP(三)

物理網(wǎng)卡芯片初始化

物理芯片設(shè)置好了后就可以接收和發(fā)送數(shù)據(jù)了,但接收和發(fā)送數(shù)據(jù)函數(shù)需要由LwIp的函數(shù)來進行封裝,否則無法被LwIp處理。

數(shù)據(jù)接收流程

無操作系統(tǒng)和有操作系統(tǒng)的數(shù)據(jù)接收方式有所不同,無操作系統(tǒng)的接收入口函數(shù)是ethernetif_input,把網(wǎng)卡接收到數(shù)據(jù)送到LwIp協(xié)議棧

 

 

物聯(lián)網(wǎng)高手必備---網(wǎng)絡(luò)協(xié)議棧LwIP(三)

 

 

數(shù)據(jù)接收流程

 

數(shù)據(jù)發(fā)送流程

物聯(lián)網(wǎng)高手必備---網(wǎng)絡(luò)協(xié)議棧LwIP(三)

 

注冊發(fā)送函數(shù)

物聯(lián)網(wǎng)高手必備---網(wǎng)絡(luò)協(xié)議棧LwIP(三)

 

發(fā)送流程

 

在low_level_output函數(shù)內(nèi)要實現(xiàn)自己的網(wǎng)卡發(fā)送功能。

責任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2019-06-14 06:32:54

LwIP網(wǎng)絡(luò)協(xié)議物聯(lián)網(wǎng)

2011-11-09 14:59:37

LwIP協(xié)議棧

2011-11-08 15:40:47

LwIP協(xié)議棧嵌入式

2020-11-19 09:19:42

物聯(lián)網(wǎng)物聯(lián)網(wǎng)標準物聯(lián)網(wǎng)協(xié)議

2018-12-24 06:56:12

物聯(lián)網(wǎng)網(wǎng)絡(luò)協(xié)議MiWi

2019-07-15 14:40:39

網(wǎng)絡(luò)安全攻擊加密

2020-12-21 10:07:34

物聯(lián)網(wǎng)協(xié)議物聯(lián)網(wǎng)IOT

2022-06-27 10:41:45

MQTT物聯(lián)網(wǎng)協(xié)議

2020-03-14 13:13:02

物聯(lián)網(wǎng)IOT通信協(xié)議

2023-09-24 23:18:50

2019-11-20 10:04:21

物聯(lián)網(wǎng)通訊協(xié)議IOT

2019-11-20 22:52:49

物聯(lián)網(wǎng)通訊協(xié)議IOT

2019-11-27 11:12:54

物聯(lián)網(wǎng)通訊協(xié)議IOT

2022-09-19 11:03:27

物聯(lián)網(wǎng)物聯(lián)網(wǎng)協(xié)議

2024-03-26 11:52:13

2021-04-14 15:37:05

物聯(lián)網(wǎng)標準和協(xié)議

2023-03-20 16:16:40

MQTT傳輸協(xié)議

2010-09-09 13:30:03

Linux網(wǎng)絡(luò)協(xié)議棧

2024-10-12 14:40:03

多協(xié)議數(shù)采盒工業(yè)物聯(lián)網(wǎng)

2023-04-18 16:12:14

點贊
收藏

51CTO技術(shù)棧公眾號