I have found that VC5505's Uart and C5515's Uart are different. The same code can run on VC5505, but can't run on C5515(I have transplanted the code to C5515 according to TMS320C55XXCSL-LOWPWR-2.10.00.00 CSL).
In my application, Uart receiver is configured in Uart interrupted mode, and Uart transmitter is configured in DMA interrupt mode. Only does Uart receive some commands, then it transmits the corresponding data. So UART_setup() function implements firstly before DMA_start() function (DMA_start() is used to start Uart transmitter in DMA mode). The error happens. DMA doesn't initiate the Uart transmitter. May be DMA can't detect the Uart transmit event in this situation.
In the TMS320C55XXCSL-LOWPWR-2.10.00.00 CSL, the problem can be reproduced if you exchange the line 289 and line 297 in Example2 of Uart. Exceptionally, the error doesn't happen on VC5505 if you do this change.
Finally, I found the solution. If Uart transmitter runs in DMA mode, Uart transmitter must be disabled before DMA_start(), and then be enabled after DMA_start(). But the overrun error occurs after running for a while, and the error can't be cleared in interrupt program.
Could do you please provide me some solutions?