In my current setup I've configured software UARTstdio for UART 3 channel of TM4C129 Microcontroller in DK-TM4C129 evaluation board.
A 3rd party end device sends a stream of data via UART as packets of variable size. Everything works fine if the received data packet is less than 22 Bytes (approximately).
However, there is a specific data packet that is of size 64 bytes and this is where things get complicated.
The interrupt handler of UARTstdio is modified to read every received character in the UART and check for a sequence of termination characters. If the characters match, then a semaphore is posted which resumes the operation of a task .
These termination character checks along with a memcpy of data from UART Rx Buffer to a local buffer is done in the interrupt handler before posting the semaphore. When the packet that I expect is 64 bytes long, the interrupt handler does not post/release the semaphore.
I've ensured that the end device is actually sending 64 bytes of data and there are no errors on the device end. I'm using UART at 115200 baud rate with TI RTOS version 2.10. Also, I reconfigured my UART3 RX Buffer size (defined in UARTstdio) is 1024.
Could any one guide me how to debug this problem ?