I have a FreeRTOS project using the "rzg2l_cm33_rpmsg_demo" project as a base. I have added two tasks to handle an SCI(19200baud, 9N1) and a SCIF(115200, 8N1) port.
On UART_EVENT_RX_CHAR event in their respective callback function, the received character is sent to a streambuffer using xStreamBufferSendFromISR().
Then each task simply polls their respective streambuffer using xStreamBufferBytesAvailable() every 1ms and echo back any characters received using the SCI_UART or SCIF_UART Write functions.
During testing, UART_EVENT_ERR_OVERFLOW is occasionally called from the SCIF callback function, which means that the SCIF RX ISR was not able to service the interrupt.
Further testing seems to indicate that the A55 core influences this uart interrupt issue. In fact, if we stay in u-boot and run a cm33 debug session, we don't face any uart rx overflow issues.
If we boot to linux and run a iperf3 test while the cm33 firmware is running, the uart rx overflow issue happens very frequently.
Another strange observation is if we disable the rpmsg_demo task by commenting out MainTask_create(); in main.c, the uart rx overflow issue also happens very frequently.
Would appreciate any guidance or advice to troubleshoot this.
Hi AXAaron,Are you using a custom board or an EVK?Which channels of SCI and SCIF are you using?Kind Regards.
Hi PT,
I am using a custom board using MYIR System-On-Module: https://www.myirtech.com/list.asp?id=718.
I am using SCIF2 and SCI0.
Thanks and regards.
Hi AXAaron,If it is a MYIR SoM, please contact with MYIR.Thank you.Kind Regards.