一、系统
在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