Hi,
I would report a bug in ENET_QOS LWIP driver:
in source file enet_ethernetif_qos.c struct ethernetif is defined as
struct ethernetif
{
ENET_QOS_Type *base;
enet_qos_handle_t handle;
#if !NO_SYS
EventGroupHandle_t enetTransmitAccessEvent;
EventBits_t txFlag;
#endif /* !NO_SYS */
enet_qos_rx_bd_struct_t *rxBuffDescrip;
enet_qos_tx_bd_struct_t *txBuffDescrip;
enet_qos_frame_info_t txDirty[ENET_RXBD_NUM];
rx_buffer_t *rxDataBuff;
tx_buffer_t *txDataBuff;
volatile uint8_t txIdx;
uint32_t rxBufferStartAddr[ENET_RXBD_NUM];
rx_pbuf_wrapper_t RxPbufs[ENET_RXBUFF_NUM];
};
Here the size of txDirty array is defined by ENET_RXBD_NUM instead of ENET_TXBD_NUM.
Obviously this will work as long as the ENET_RXBD_NUM >= ENET_TXBD_NUM (as in all of the examples), but if ENET_RXBD_NUM < ENET_TXBD_NUM, txDirty array will overflow.
-Panu
Hi @pnhnkvr
Thank you very much for your input. You are right. I will report this issue.
Regards
Daniel