大家好這個(gè)“第一個(gè)數(shù)據(jù)段的描述符”是什么意思,類(lèi)似于分包發(fā)送的第一包嗎
補(bǔ)個(gè)圖
然后大家再看一下這個(gè)while循環(huán), 在1處 if判斷里表示的意思是:如果不是最后一個(gè)數(shù)據(jù)段的描述符的話就會(huì)一直執(zhí)行這個(gè)while循環(huán)對(duì)吧,如果這個(gè)“數(shù)據(jù)段”真的是分包的意思話,那如果來(lái)了很大的包,分包的個(gè)數(shù)很多,這樣在2處執(zhí)行的次數(shù)超過(guò)3次不就回到首個(gè)描述符了嗎,這樣不就把首個(gè)描述符一開(kāi)始存的接收緩沖區(qū)里的數(shù)據(jù)給覆蓋掉了嗎
描述的有點(diǎn)雜亂請(qǐng)見(jiàn)諒,圖中代碼是官方例程 “ NET_MAC ”文件里的工程下的" NET_MAC.c " “MAC_RecvFinishHanld()”函數(shù)
您好,當(dāng)MAC數(shù)據(jù)段超過(guò)描述符數(shù)量,當(dāng)前描述符數(shù)據(jù)段的數(shù)據(jù)未被讀取時(shí)會(huì)被鎖定,禁止寫(xiě)使能;當(dāng)完成讀操作時(shí),后面數(shù)據(jù)才會(huì)填充至描述符數(shù)據(jù)段。不會(huì)將未讀取數(shù)據(jù)覆蓋。
嗯嗯謝謝兄弟,?那你說(shuō)的一個(gè)數(shù)據(jù)段是不是就是分的一個(gè)包,如果這個(gè)包很大的話
兄弟你說(shuō)的數(shù)據(jù)段是不是紅框里那部分
不是,是指一包完整的MAC幀。
嗯嗯謝謝您的回答,我思路現(xiàn)在比較亂我需要理一下