The documentation on SCB UART in multiprocessor mode is quite short and does not explain everything.
Is there code example for both the tx and rx sides of UART in this mode?
In the datasheet, there is this section explaining the use of the 9th bit.
How does this code work? The tx_data (assuming a uint16) is 0x31, and after ORing with the UART_UART_MP_MARK, how did this give the tx_data another bit at the end? Wouldn't this just set the lsb to 1 (in this case of tx_data, no change?) What's the actual data sent out by uart? I think it would still be 0b0 0011 0001 (0x031). But the receiver would recognize this as an address byte with its data being 0b0001 1000 (0x18).
Is my understanding correct? What's the right way to use UART in the multiprocessor mode?