I have a design which continuously outputs serial data at 1MBd (no inter-byte gap) using the low priority interrupt to send data, re-loading the message once complete. I can see this on the UART debug port of the Launchxl-TMS570004.
I can send single return bytes, which are handled via the high priority interrupt, without apparently affecting the output stream.
However, if I send a block of bytes using TeraTerm macro, the output stream must be being corrupted in some fashion, although an oscilloscope view looks no different. By corrupted, the debug output, on TeraTerm is repeated garbage. I have to assume that one or more individual bytes, with its start and single stop period, has been interrupted so the terminal cannot get back in synchronisation.
This occurs whether just powered up or under control by CCS7.
I would have thought that the UART hardware should be totally independent of software functions, just providing its 10-period output once the Transmit Data Buffer Register (SCITD) has been loaded with new data. I'not knowingly writing to any of the control registers to reset, or change the Baud rate of the SCI.
As an aside, if in debug mode, when single-stepping through the scilinREG->TD = (uint32)(txdata); instruction I would expect to see UART data, but get nothing out. I've cleared all options of Disable interrupts in the Properties>Debug>Program/Memory Load tab. I'm sure I've seen something needed to set/clear to allow the SCI to work properly during Debug but thought it was the above...
Thanks