Have you already checked this testing project for UltraScale?
I think you need to make three steps, one after the other:
- Get FreeRTOS running properly
- Get FreeRTOS+TCP running properly, try to get ping work.
- Start sending and receiving raw packets
Step-3 will be the easiest one.
Do you know if there is something particular that I need
to take care of when dealing with interrupts in FreeRTOS?
Can you make sure that the interrupts are installed?
The general EMAC interrupt handler is XEmacPs_IntrHandler()
. It will be called for reception and transmission. It is installed as:
XScuGic_Connect( &xInterruptController,
xtopologyp->scugic_emac_intr,
XEmacPs_IntrHandler,
emac );
The function XEmacPs_SetHandler()
sets the three handlers: DMASEND
, DMARECV
, and ERROR
. It is called from setup_isr()
.