AM2434: AM2434: INDUSTRIAL-COMMUNICATIONS-SDK-AM243X v11.x, EthertNet/IP, bug in drv_uart.c

Part Number: AM2434

Tool/software:

Hello,

I see a bug in function
"void DRV_UART_printf(void* pContext, const char* pFormat, va_list arg);"
present in
"c:\ti\ind_comms_sdk_am243x_11_00_00_13\examples\industrial_comms\ethernetip_adapter_demo\drivers\uart\drv_uart.c"

The temporary buffer
"static char localString[256] = {0};"
cannot be static because many FreeRTOS tasks can log a message and rewrites data in this buffer!

Because it is only a temporary string output buffer, it should be placed just on stack (no static) in each call of this function invocation:
"char localString[256];"  // suggestion
as well as in the Profinet example.
But than a stack problem happens in EtherNet/IP precompiled libraries (FreeRTOS task name "packet").

Please correct your libraries and example to not rewrite logged data.

Wrong EtherNet/IP solution versus correct Profinet solution attached.

Regards,
Vit Triska