您好:
我在函数中看到了另一个错误
void DRV_UART_printf (void * pContext、const char* pFormat、va_list arg);“
存在于中
“C:\ti\ind_comms_sdk_am243x_11_00_00_13\examples\industrial_comms\EtherNetIP_adapter_demo\drivers\uart\drv_uart.c“
此函数应将临时缓冲区“tmpString[]"中“中的数据以原子方式放入循环缓冲区“aOutStream"中“中、即全部或无任何内容。
在单次写入 (memcpy) 的情况下、满足此条件。 在两次写入的情况下,实际上只执行第一部分,其余部分不适合,这是一个错误。
为了解决这个问题、我建议针对写入循环缓冲区的条件采用以下解决方案。 请将此代码片段转发给您的开发团队。
我请求此函数具有相同的行为,当缓冲区为循环且几乎已满时,其行为方式相同 — 放置所有数据或不放置任何数据(任何时候)!
此致、
维特·特里斯卡
Ethernetip_example_drv_uart_fixed_DRV_uart_printf.c