MPC8247(基於Vxworks)驅動除錯

2021-09-30 20:45:34 字數 752 閱讀 5771

筆者定位,驅動小白,為了給自己搭建盡量系統的驅動知識庫,所以將自己除錯驅動過程中所碰到的問題以及解決方法進行記錄分析,供後期參考,也請廣大同仁多多指教。

此次所記載問題與網絡卡驅動相關的,這裡關於底層的網絡卡驅動框架就不介紹了,主要描述所發現的問題,解決問題的思路,以及解決問題的過程。

當mpc8247板卡對pc進行連續ping操作時,當ping的次數達到第52次之後,53次就停住了。

在驅動層進行了一些錯誤排查,並沒有發現什麼問題。於是在ping指令呼叫的驅動層介面中新增了列印,發現第53次ping操作,根本就沒有進入該驅動層介面。產生的想法就是對正常情況與異常情況進行對比,從輸入ping指令到驅動這一過程中到底哪一步出現了異常。

整個ping指令的操作過程還是比較複雜以及漫長的,要經歷shell層、網路協議棧、驅動層。光靠記憶力來跟**還是很費勁的,在這裡推薦利用畫圖軟體進行跟蹤比如(visio或其他)。至於圖我在這裡就不展現了。

第53次與之前52次的過程大致相同,主要差別發生在ipnet_handle_singal(sig)中得到體現。在正常的情況下,改介面處理的訊號型別為ipnet_sig_sendmsg,而異常情況下,產生的訊號型別為poll_sig。從此介面進行反推,找到了出現問題的具體原因為sock->snd_bytes的值大於sock->send_max_bytes。對比其他平台的情況(比如ppc8360),sock->snd_bytes的值一般是不會發生改變的。聯想到驅動層原因為網絡卡傳送時未正常清理tbd(傳送描述符),最後進入驅動檢視原因是由於清理tbd的條件設定不當。解決問題。

開源工程 mpc

mpc peter lee 2008 06 05 一 簡介 遺憾的是mpc工程在2006年04月停止了更新,同時所幸的是有兩個開源工程在mpc的基礎上繼續更新,乙個是mpc2,主要是clsid2在維護,主要是修正mpc原工程中的一些bug,不新增新功能 另乙個mpc home cinema比較強了,...

控制理論 MPC(二)

假設我們車輛的制動延遲是 100ms100ms 本文中模型採用10步 每步間隔為 50ms50ms 即模型 的前兩步實際上是制動延遲的時間內,即實際上這兩步中車輛仍然在執行上乙個狀態的制動指令,那麼為了讓模型更加貼近實際,我們就約束這2步的制動指令,即 a,deltaf a,deltaf 為上一狀態...

MPC初學2(數學建模)

模型 控制系統是基於數學建模,這種模型被稱為狀態 空間模型。通過狀態 空間模型,能用當前的狀態變數和操縱變數 偏差值 來表示未來狀態量。接下裡我們舉乙個單輸入 單輸出的例子,它可以被如下描述 xm k 1 amxm k bmu k y k cmxm k 其中u k 是操縱變數,作為輸入 xm k 是...