Print Functions In Zynq EMAC Code
Market leading real time kernel for 40+ microcontroller architectures
Brought to you by:
gaurav-aws,
rtel
Marty, please find attached the latest Zynq driver "Zynq_2019_march_01.7z"
● NetworkInterface.c :
xNetworkInterfaceOutput()will callxCheckLoopback()to check if the message is for the loopback deviceulPHYLinkStatusmust be set.● x_emacpsif_dma.c
emacps_send_message(): after writing to the "NWCTRL" register, read it back to make sure the data was transferred.ipconfigUSE_LINKED_RX_MESSAGESis defined as 1● x_emacpsif_physpeed.c
xil_printf()withFreeRTOS_printf()I tested the driver in a Zybo project, using iperf3 and FTP.
Last edit: Hein Tibosch 2019-03-01
I compiled the new code into my project, and everything appears to be working correctly. I am only running the example FTP server and UDP/TCP CLI consoles at the moment, so nothing to complex.
One more note that I had forgotten when I posted originally. On Line 341 of x_emacpsif_physpeed.c there is a sleep(1) call. Changing that to a vTaskDelay helps prevent the EMAC thread from blocking other tasks from running if the ethernet connection is not present when the Zynq boots.
Very good, I will change all occurences of sleep():