IMX6中串列埠丟包問題解決方法

2021-10-06 13:47:08 字數 512 閱讀 8318

1.)串列埠沒有流控,串列埠fifo溢位問題在硬體層面沒有保障。

2.)cpu響應不及時,無法及時將串列埠fifo中的資料讀取出,造成fifo溢位,從而資料丟失。其中的原因有:a.) cpu不能及時響應串列埠資料接收中斷,因為cpu此時正在處理別的中斷,需要等待當前中斷處理完成之後,才能接著處理串列埠中斷。b.) linux核心中正在處理 spin_lock_irq_***x() 等這一類主動關閉cpu當前中斷響應的操作,自然會造成串列埠中斷無法在當前cpu中得到響應。

在linux系統(安卓)中,往往將中斷irq的處理,全部放在cpu0中,這加重了cpu0的負荷,增加了串列埠丟包的可能。因此,需要做出以下改變,將imx6中串列埠丟包的可能性,降低到最小:

1.)將串列埠接收中斷,繫結到cpu0以外的其他cpu核上,比如cpu1,這降低了各個中斷處理之間的cpu競爭,增加串列埠中斷得到cpu處理的機率。

2.)梳理核心中,spin_lock_irq_***x() 等這一類api使用的場景,若其占用時間過長,則應當優化。這樣可以加快串列埠中斷得到cpu處理的速度。

tcpdump丟包問題解決方法

近日用tcpdump抓包,發現有大量的丟包出現 packets dropped by kernel 如下 tcpdump i eth0 dst port 1234 and udp s 2048 x tt a.pack 264 packets captured 3043 packets receive...

WPF Image問題解決方法

一.image是控制項,source屬性型別是imagesource 二.imagebrush是筆刷,用於填充 1.基本使用,必須指定imagesource源 imagebrush繼承自tilebrush,imagebrush功能比較強大 三.imagedrawing繼承自drawing,用於繪圖 ...

SeLinux問題解決方法

selinux問題解決方法 3 關於以上修改,google提供的解決方案如下 3.1 如果乙個檔案只是被vendor下的程序使用,可以將此檔案設為vendor data file,存放於 data vendor目錄下 3.2 如果乙個檔案既被system下的程序也被vendor下的程序使用,並且是a...