Transmit
Informative
How a channel transmits data, and the two completion-notification styles. Binding rules: CHI-UART-MUST-08…CHI-UART-MUST-11 in Uart — Requirements.
Start a transmission
Std_ReturnType r = Uart_StartTxTransaction(0u, txData, len); /* channel, buffer, length>0 */
The call moves the channel to BUSY and returns immediately; the transfer completes
asynchronously. Keep txData valid until the completion / streaming callout fires. You may start
the next transaction only when the channel is not BUSY (i.e. IDLE or, for streaming,
READY).
Completion style: HwCompletion
For a channel configured transmission_callback_type: HwCompletion, the driver notifies when the
whole buffer has left the UART bus (FIFO and shift register empty):
void Uart_Callout_OnTransmission(uint8 channelId, uint16 length)
{
/* all `length` bytes are physically sent; safe to reuse the buffer */
}
Completion style: Streaming
For transmission_callback_type: Streaming, the driver notifies as soon as the software
buffer has been handed to the hardware — the channel enters READY and you can immediately queue
the next buffer to keep the bus continuously fed:
void Uart_Callout_OnStreamingDataRequest(uint8 channelId, uint16 length)
{
/* the SW buffer is empty (HW may still be draining) — stage the next chunk now */
Uart_StartTxTransaction(channelId, nextChunk, nextLen);
}
Note
A channel uses either Uart_Callout_OnTransmission or Uart_Callout_OnStreamingDataRequest,
never both — the style is fixed by configuration. TX errors, where the hardware reports them, are
logged via LogM_Report at runtime-error level with UART_RTERR_TX
(CHI-UART-SHOULD-02).