應(yīng)用需求是向服務(wù)器發(fā)送HTTP請求獲取一個8MB大小的文件,然后寫入到spi flash(W25Q128)。
每接收到一包數(shù)據(jù)就寫入flash,但是因?yàn)閷?span>flash需要時間,會存在幾個毫秒的阻塞。
因?yàn)檫@點(diǎn)阻塞,會導(dǎo)致數(shù)據(jù)接收很慢、卡頓,但卡頓的時間遠(yuǎn)超這幾個毫秒。
想知道具體的原因以及解決辦法,已附帶上工程文件。
視頻太大,上傳不了,貼個鏈接,打印的是接收到的數(shù)據(jù)長度(累加)。
問了下GPT,給的答復(fù)是:
TCP 使用一個叫做滑動窗口的機(jī)制來控制數(shù)據(jù)的發(fā)送和接收。如果接收方不能及時處理和確認(rèn)數(shù)據(jù),發(fā)送方的窗口大小會減小,從而減少發(fā)送速度。當(dāng)你的代碼在處理接收到的數(shù)據(jù)時產(chǎn)生延遲,發(fā)送方可能會降低發(fā)送速度以避免網(wǎng)絡(luò)擁塞。