1. 程式人生 > >ZYNQ7020 Lwip echo 測試

ZYNQ7020 Lwip echo 測試

一、系統
在vivado中新建一個Block Design,新增一個ZYNQ7 PS (Processing System)
其配置只保留一個網口、一個串列埠,生成.bit 之後匯入到SDK中。結果如圖:
這裡寫圖片描述
這裡寫圖片描述
二、SDK工程
匯入到SDK之後,新建一個Lwip echo的工程。
這裡寫圖片描述
進入debug模式,連線串列埠和網口。
這裡寫圖片描述
連線成功之後我們就能看到串列埠打印出來的資訊,通過網路埠可以測試回聲。
這裡寫圖片描述
三、結果
找到網口的回撥函式:start_application() ---->tcp_accept(pcb, accept_callback) —>tcp_recv(newpcb, recv_callback) —>recv_callback();插入一句列印語句:

	if (tcp_sndbuf(tpcb) > p->len) {
		err = tcp_write(tpcb, p->payload , p->len, 1);
		xil_printf("%s",p->payload);
	} else
		xil_printf("no space in tcp_sndbuf\n\r");

之後我們也可以在串列埠中看到傳送資訊的回聲:
這裡寫圖片描述
注意:
SDK工程進入不了debug模式可能的原因:
1、時鐘設定不正確。
2、DDR設定不正確。
aaaaaaaaa