sdk v2014.4pl端設計,略。phy 88e1510
pl端乙太網,自協商
standalone應用程式
根據pl端生成的hdf,新建專案,採用官方lwip echo server例程。發現執行結果為
-----lwip tcp echo server ------很明顯不對。tcp packets sent to port 6001 will be echoed back
auto-negotiated link speed: 69073
1、除錯發現執行到 xaxiemacif_physpeed.c檔案中的get_ieee_phy_speed()函式時,phy_model = 464 = 0x1d0,不屬於例程自帶的以下兩個型號:
if (phy_identifier == marvel_phy_identifier) else if (phy_model == marvel_phy_88e1111_model)
}
2、所以加入該型號的驅動函式:
#define marvel_phy_88e1510_model 0x1d0
unsigned get_phy_speed_88e1510(xaxiethernet *xaxiemacp, u32 phy_addr)
xil_printf("waiting for phy to complete autonegotiation.\r\n");
xaxiethernet_phyread(xaxiemacp, phy_addr, ieee_status_reg_offset, &status);
while ( !(status & ieee_stat_autonegotiate_complete) )
xaxiethernet_phyread(xaxiemacp, phy_addr, ieee_status_reg_offset, &status);
} xil_printf("autonegotiation complete \r\n");
xaxiethernet_phyread(xaxiemacp, phy_addr, ieee_specific_status_reg, &partner_capabilities);
if ( ((partner_capabilities >> 14) & 3) == 2)/* 1000mbps */
return 1000;
else if ( ((partner_capabilities >> 14) & 3) == 1)/* 100mbps */
return 100;
else /* 10mbps */
return 10;
}
3、然後將 get_ieee_phy_speed()函式改為:
if (phy_identifier == marvel_phy_identifier) else if (phy_model == marvel_phy_88e1111_model)
//新加
else if (phy_model == marvel_phy_88e1510_model)
}
4、編譯執行結果正確:
-----lwip tcp echo server ------5、官方例程是回顯網口資料,即在網口輸入什麼就輸出什麼,如果想在串列埠也輸出,可以改下recv_callback()函式:tcp packets sent to port 7 will be echoed back
in get_phy_speed_88e1510.
waiting for phy to complete autonegotiation.
autonegotiation complete
auto-negotiated link speed: 1000
board ip: 192.168.1.10
netmask : 255.255.255.0
gateway : 192.168.1.1
tcp echo server started @ port 7
if (tcp_sndbuf(tpcb) > p->len) else
xil_printf("no space in tcp_sndbuf\n\r");
ZYNQ 使用EMIO點亮LED
硬體 xilinx zynq 7000 soc zc706 版本 vivado2015.4 目的 同時閃爍3個燈。點亮分為ps和pl兩部分。pl屬於硬體連線。gpio 0 tri io在.v檔案裡生成,注意不是gpio 0 管腳號package pin從datasheet中獲取 iostandard...
zynq中mgtx應用 ZYNQ中斷體系
arm中斷體系 01 arm體系中,在儲存位址的低位,固化了乙個32位元組的硬體中斷向量表。異常中斷發生時,程式計數器pc所指的位置不同,異常中斷就不同。中斷結束後,中斷不同,返回位址也不同。但是,對於系統復位中斷,不需要返回,因為整個應用系統就是從復位中斷中開始的。快速中斷請求 外部引腳的快速中斷...
ZYNQ中斷實驗
程式中編寫了 3 個函式,乙個是 main 主函式,乙個是中斷建立函式,另乙個是中斷呼叫 函式。首先在 main 函式中初始化定時器 timer,指定 timer 的裝置號為 xpar xscutimer 0 device id,此裝置號在 xparameters.h 的標頭檔案中定義了的。再設定定...