1、最近項(xiàng)目遇到的問(wèn)題
最近在stm32上用cubemax移植了lwip協(xié)議棧,lwip就不用過(guò)多介紹了,(lightweight IP)一款輕量級(jí)的開(kāi)源TCP/IP協(xié)議棧,專為嵌入式系統(tǒng)設(shè)計(jì),具有小巧高效、可裁剪性強(qiáng),主要是已經(jīng)發(fā)展和廣泛應(yīng)用多年,可靠性還是可以的,基本上大多數(shù)嵌入式系統(tǒng)的網(wǎng)絡(luò)通信需求都可以滿足。
然而最近項(xiàng)目中通信數(shù)據(jù)量大一點(diǎn),老是send超時(shí),運(yùn)行時(shí)間久了還會(huì)直接掛在ethnetif_input,這可把我給整郁悶了。
最后定位到原因還是lwip適配的兩個(gè)線程優(yōu)先級(jí)分配得有問(wèn)題,導(dǎo)致FreeRTOS信號(hào)量超時(shí)異常。
2、兩個(gè)主要線程
在lwIP協(xié)議棧中,ethernetif_input線程和tcpip協(xié)議棧線程是兩個(gè)核心的線程,在處理網(wǎng)絡(luò)數(shù)據(jù)包和執(zhí)行TCP/IP協(xié)議棧功能時(shí)的作用就不用多說(shuō)了,下面簡(jiǎn)單的介紹下兩個(gè)線程的作用:
ethernetif_input線程:
ethernetif_input線程負(fù)責(zé)接收來(lái)自網(wǎng)絡(luò)接口(如以太網(wǎng)接口)的數(shù)據(jù)包,并將其傳遞給lwIP協(xié)議棧進(jìn)行處理。
這個(gè)線程通常運(yùn)行在較低的優(yōu)先級(jí),因?yàn)樗饕?fù)責(zé)接收和緩存數(shù)據(jù)包,而不涉及復(fù)雜的協(xié)議處理。
在實(shí)際應(yīng)用中,可以根據(jù)系統(tǒng)的需求和性能進(jìn)行調(diào)整,但通常情況下,ethernetif_input線程的優(yōu)先級(jí)相對(duì)較低。
tcpip協(xié)議棧線程:
tcpip協(xié)議棧線程是lwIP協(xié)議棧的核心線程,負(fù)責(zé)處理TCP/IP協(xié)議棧的各種功能,包括TCP連接管理、IP數(shù)據(jù)報(bào)的路由和轉(zhuǎn)發(fā)、以及UDP數(shù)據(jù)包的處理等。
由于tcpip協(xié)議棧線程需要處理復(fù)雜的協(xié)議邏輯和數(shù)據(jù)包處理,因此它通常運(yùn)行在較高的優(yōu)先級(jí)。
保持tcpip協(xié)議棧線程的較高優(yōu)先級(jí)有助于確保網(wǎng)絡(luò)數(shù)據(jù)包的及時(shí)處理和協(xié)議棧功能的高效執(zhí)行。
在實(shí)際的嵌入式系統(tǒng)設(shè)計(jì)中,需要根據(jù)具體的硬件平臺(tái)和應(yīng)用場(chǎng)景來(lái)合理設(shè)置這兩個(gè)線程的優(yōu)先級(jí)。通常情況下,可以通過(guò)操作系統(tǒng)或者裸機(jī)編程的方式來(lái)配置線程的優(yōu)先級(jí),以滿足系統(tǒng)對(duì)網(wǎng)絡(luò)數(shù)據(jù)處理和協(xié)議棧功能的實(shí)時(shí)性和效率要求。
3、總 結(jié)
所以通常情況下,tcpip協(xié)議棧線程的優(yōu)先級(jí)需要設(shè)置得更高,因?yàn)閠cpip協(xié)議棧線程需要處理復(fù)雜的協(xié)議邏輯、數(shù)據(jù)包處理、連接管理等任務(wù),保持tcpip協(xié)議棧線程的較高優(yōu)先級(jí)可以確保網(wǎng)絡(luò)數(shù)據(jù)包的及時(shí)處理和協(xié)議棧功能的高效執(zhí)行,從而提高系統(tǒng)的響應(yīng)速度和網(wǎng)絡(luò)通信的穩(wěn)定性。
ethernetif_input線程通常負(fù)責(zé)接收和緩存數(shù)據(jù)包,相對(duì)來(lái)說(shuō)不涉及太多復(fù)雜的處理邏輯,因此可以設(shè)置相對(duì)較低的優(yōu)先級(jí)。
經(jīng)過(guò)優(yōu)先級(jí)調(diào)整后,跑了2天都沒(méi)有出現(xiàn)異常問(wèn)題。
審核編輯:黃飛
-
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634617 -
TCP
+關(guān)注
關(guān)注
8文章
1353瀏覽量
79055 -
UDP
+關(guān)注
關(guān)注
0文章
325瀏覽量
33931 -
LwIP
+關(guān)注
關(guān)注
2文章
86瀏覽量
27148 -
線程
+關(guān)注
關(guān)注
0文章
504瀏覽量
19675
原文標(biāo)題:在單片機(jī)上運(yùn)行Lwip線程優(yōu)先級(jí)很重要~
文章出處:【微信號(hào):嵌入式情報(bào)局,微信公眾號(hào):嵌入式情報(bào)局】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論