LWIP_簡記(3.今天來點兒乾貨,"實操")

LWIP一句話記住就行:
一項工程,兩份配置,三種內存分配,四套操作API,五步初始化,六個"數據流",七個數據結構
-------------------------------------------

相信

大家有了前面的基礎,已經對lwip有了個框架認識,那麼今天就來實操一下
按照慣例我喜歡條例化,那麼來吧!以RTThread操作系統爲例,五步曲跑通lwip.至於爲啥選擇RTThread,坦白講就是因爲"愛國"(其實是因爲英文太差),當然啦RTThread還真的是不錯的,最主要的是有個ENV模擬器可以直接玩,好歹也看到了國產os的星星,華夏民族的情懷,理念,崛起...

扯遠了,拉回來.
如果你沒有玩過rtt,那本期對不住了,可能看着你會很難受,因爲說是實操,但是基本都是此處省略...個字.emm

1.源碼下載

第一步當然是下載源碼了,前面第一講已經給了大家lwip的官方網址,自己去下載就好了,不多說,但是你們知道的,熱心的我總是會給你們最好的,所以下面鏈接來了.

rtt源碼下載:https://github.com/RT-Thread/rt-thread
命令:git clone https://github.com/RT-Thread/rt-thread.git
lwip源碼目錄:rt-thread/components/net

直接下載就好,三個主要版本(1.4.x/2.0.x/2.1.x)都有,不用再去單獨下載lwip的源碼了.接着往下看,你就會知道,自己單獨去lwip官網下載的源碼要用起來,emm需要做的工作太多了.

順便給一下rtt的文檔官方網址:https://www.rt-thread.org/document/site/.
題外話,個人覺得資料詳盡,跟着學一遍,對你有很大幫助的.

2.環境準備

如果用RTThread的話,其實唯一環境就是源碼,另外一臺能夠上網的電腦就可以了.我們不需要額外的板子什麼的,純模擬器,效果一樣的.
所以說此處要開始第一次省略...個字了.詳情看rtt官網.

3.實操

emm第二次省略...個字,真心的,源碼下載下來執行一個menuconfig配置如下圖:
rtt-lwip配置
剩下的操作就是跟着rtt文檔去編譯,在ENV中跑起來就行了.
還有很多測試配置這裏也不展開了.
至少一點兒測試可以做,系統跑起來後,會自動獲取ip,這時候用電腦直接ping就可以了.
PS:如果有啥編譯等問題,歡迎到https://www.rt-thread.org/qa/forum.php去搜,多數疑難雜症都有人解決了,別跑去百度什麼的,出來一大堆掛鉤lwip關鍵字而已.

好了,既然說了是乾貨,也不能讓大家失望啊.不失一般性,總結一下:
要使用lwip,這樣整就好

1.依據自己需要配置lwipopts.h,比如基本功能ping ip總得要吧.那毫不猶豫打開 #define LWIP_ICMP 1
2.cpu或編譯器的適配,當然這是在用os的前提下,如果你就想用stm32跑裸機,這步可以省略.
3.與os相關的接口適配.
4.**底層網卡驅動適配**,這個我後期會轉們拿出來講的.
5.**lwip的初始化**,這個也是重點,後期後單獨拿出來講.

正如上面提到的用os的話,最多的工作就是2/3/4步驟,所以本期纔會以rtt爲例,因爲他已經弄好了.
好像lwip乾貨不多,但是rtt的乾貨很多,如果結合起來自然而然本期是LWIP最多幹貨的一期了.
所以呢爲了更加明確這五步,給大家上個圖:
lwip使用時需要自己做的
第五步呢,就是具體廠商的玩法了,這裏給個博通的,其實也很簡答,就是驅動寫個init函數,然後調用tcpip_init()brcm
反正第4/5步後面都會重點講解的.大家敬請期待.
加油吧,少年!

-------------------------------------------
這期就到這裏了,LWIP想怎麼玩就怎麼玩,我們下期再見.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章