這裡主要是在uboot下,通過在uboot中讀取phy暫存器的狀態來判斷網路,所以當前狀況下必須保證mdio匯流排沒有問題,否則無法讀取phy暫存器
zynq-uboot> mdio
mdio - mdio utility commands
usage:
mdio list - list mdio buses
mdio read [.]- read phy's register at .mdio write [.]- write phy's register at .may be:
, and may be ranges, e.g. 1-5.4-0x1f.
以上是uboot中的mdio的幫助說明。
zynq-uboot> mdio list
gem.e000b000:
3 - generic phy gem.e000b000
根據mdio可以看到當前uboot中只有乙個phy_dev為3的phy晶元
下一步便是讀取暫存器
zynq-uboot> mdio read 3 0
3 is not a known ethernet
reading from bus gem.e000b000
phy at address 3:
0 - 0x1140
zynq-uboot> mdio read 3 0-15
3 is not a known ethernet
reading from bus gem.e000b000
phy at address 3:
0 - 0x1140
1 - 0x796d
2 - 0x22
3 - 0x1622
4 - 0x1e1
5 - 0xcde1
6 - 0xd
7 - 0x2001
8 - 0x4ae2
9 - 0x300
10 - 0x7800
11 - 0x0
12 - 0x0
13 - 0x0
14 - 0x0
15 - 0x3000
可以讀取乙個暫存器,也可以讀取乙個範圍內的暫存器,我們關注的一般為0暫存器(基本控制暫存器basic control)和1暫存器(basic status),來確定我們是否已經link up和當前的鏈結速率。這兩個暫存器為標準ieee 802.3 specification中明確規定的
嵌入式gdb gdbserver除錯
在很多情況下,需要對應用程式進行除錯。在 linux 下除錯程式,常用的工具是 gdb。由於嵌入式單板的資源有限,一般不直接在目標機上執行 gdb 進行除錯,而是採取 gdb gdbserver 的方式。gdbserver 在目標機中執行,gdb 則在宿主機上執行。根檔案系 統中已經包含 gdbse...
嵌入式除錯技術
嵌入式除錯方法 1.模擬器。比如qtopia core可以用奇趣提供的frame buffer模擬工具qvfb,arm硬體模擬可以用skyeye開源專案。2.遠端除錯。偵錯程式還在pc上,偵錯程式與被除錯的程式通過網路通訊。3.通過log和core dump等檔案事後分析。stdprm標準印表機lp...
嵌入式的gdb除錯
在開發過程中有很多問題如果用gdb進行除錯跟蹤會大大提高效率,但是我發現不少同事對於gdb除錯概念比較模糊,特別是跨平台的除錯,以至於放棄用gdb除錯而影響排除bug的效率。因此我這裡主要對跨平台除錯做乙個簡要的說明。我們對機頂盒上的軟體進行除錯主要有兩種方式,本地除錯和遠端除錯。遠端除錯還有乙個問...