본문 바로가기

[FPGA]/Zynq(MPSOC)

Zynq UltraScale+ MPSoC 보드 초기화 테스트 - Giga Etherent UDP 테스트

Zynq UltraScale+ MPSoC 보드 테스트 - Giga Etherent UDP 테스트

 

TCP예제가 문제 없이 동작하므로 Giga Ethernet 통신은 확인이 되었고 EtherCAT 동작을 테스트 하기 위해 UDP통신도 문제 없이 동작하는지 확인해 볼 필요가 있다.

 

Zynq UltraScale+ MPSoC UDP 전송코드

static void udp_recv_perf_traffic(void *arg, struct udp_pcb *tpcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)
{
int i;
unsigned char tcp_buf_rx[2048];

pcb->remote_ip = *addr;
pcb->remote_port = port;

    //수신 IP 시리얼로 출력
xil_printf("%d.%d.%d.%d\r\n",
                    (addr->addr)&0xFF, (addr->addr>>8)&0xFF,
                    (addr->addr>>16)&0xFF, (addr->addr>>24)&0xFF
          );


    //수신데이터 시리얼로 출력
    xil_printf("rx size = %d\r\n", p->len);

    for(i=0;ilen;i++)
    {
        //데이터 수신되면..
        //임시로 테스트 용으로 저장 -> 실제 제이터는 p->payload 에 있음
        tcp_buf_rx[i] = *((unsigned char*)p->payload+i);

        xil_printf("%x ", tcp_buf_rx[i]);
    }


udp_sendto(tpcb, p, addr, port);

xil_printf("UDP test passed Successfully\n\r");


pbuf_free(p);

}

반응형