This information applies to the following SoftDevices:
S132, S140, S212, S332
The
Serialization HAL Transport
declares functions and typedefs used as API of the HAL transport layer for serialization. This layer is fully hardware-independent. Currently, the HAL transport layer is responsible for controlling the PHY layer and memory management. In the future, more features might be added to it, such as CRC or retransmission.
Page-1
Start/End-point
Start
Start
Process.245
HAL_TRANSP_RX_STATE_CLOSED
HAL_TRANSP_RX_STATE_CLOSED
Flowline1
Process.230
HAL_TRANSP_RX_STATE_IDLE
HAL_TRANSP_RX_STATE_IDLE
Process.232
HAL_TRANSP_RX_STATE_RECEIVING
HAL_TRANSP_RX_STATE_RECEIVING
Process.233
HAL_TRANSP_RX_STATE_RECEIVED
HAL_TRANSP_RX_STATE_RECEIVED
Flowline1.234
ser_hal_transport_open(transport_events_handler) / ser_phy_op...
ser_hal_transport_open(transport_events_handler) / ser _ phy _ open ( phy _ events _ handler )
Flowline1.236
SER_PHY_EVT_RX_BUF_REQUEST / transport_events_handler( SER_HA...
SER_PHY_EVT_RX_BUF_REQUEST / transport _ events _ handler ( SER _ HAL _ TRANSP _ EVT _ RX _ PKT _ RECEIVING )
Flowline2
ser_hal_transport_close() / ser_phy_close()
Straight Edge.28
N
Straight Edge.29
N
ser_hal_transport_close() / ser _ phy _ close ()
Sheet.261
from any state
from any state
Annotation/Comment
Sheet.264
Sheet.265
Sheet.266
Sheet.267
Sheet.268
Sheet.269
Sheet.270
Sheet.271
Sheet.272
Sheet.273
Sheet.274
Sheet.275
Sheet.276
Sheet.277
Legend: trigger from PHY layer / actions trigger from layer a...
Legend: trigger from PHY layer / actions trigger from layer above transport / actions [ guard] / actions
Decision.254
Decision.280
Process.281
HAL_TRANSP_RX_STATE_RECEIVED_PENDING_BUF_REQ
HAL_TRANSP_RX_STATE_RECEIVED_PENDING _BUF_REQ
Process.282
HAL_TRANSP_RX_STATE_DROPPING
HAL_TRANSP_RX_STATE_DROPPING
Process.283
HAL_TRANSP_RX_STATE_RECEIVED_DROPPING
HAL_TRANSP_RX_STATE_RECEIVED_DROPPING
Flowline2.295
[rx_buf_request.num_of_bytes > sizeof (m_rx_buffer)] / ser_ph...
Straight Edge.28
N
Straight Edge.29
N
[rx_buf_request.num_of_bytes > sizeof (m_rx_buffer)] / ser _phy_rx_buf_set(NULL)
Flowline2.298
[rx_buf_request.num_of_bytes <= sizeof (m_rx_buffer)] / ser_p...
Straight Edge.28
N
Straight Edge.29
N
[rx_buf_request.num_of_bytes <= sizeof (m_rx_buffer)] / ser _phy_rx_buf_set(m_rx_buffer)
Flowline2.301
SER_PHY_EVT_RX_PKT_RECEIVED / transport_events_handler( HAL_T...
Straight Edge.28
N
Straight Edge.29
N
SER_PHY_EVT_RX_PKT_RECEIVED / transport _ events _ handler ( HAL _ TRANSP _ RX _ STATE _ RECEIVED )
Flowline1.304
SER_PHY_EVT_RX_BUF_REQUEST / transport_events_handler( SER_HA...
SER_PHY_EVT_RX_BUF_REQUEST / transport _ events _ handler ( SER _ HAL _ TRANSP _ EVT _ RX _ PKT _ RECEIVING )
Flowline2.305
[rx_buf_request.num_of_bytes <= sizeof (m_rx_buffer)] / -
Straight Edge.28
N
Straight Edge.29
N
[rx_buf_request.num_of_bytes <= sizeof (m_rx_buffer)] / -
Flowline2.308
[rx_buf_request.num_of_bytes > sizeof (m_rx_buffer)] / ser_ph...
Straight Edge.28
N
Straight Edge.29
N
[rx_buf_request.num_of_bytes > sizeof (m_rx_buffer)] / ser _phy_rx_buf_set(NULL)
Flowline2.311
ser_hal_transport_rx_pkt_free(m_rx_buffer) / ser_phy_rx_buf_s...
Straight Edge.28
N
Straight Edge.29
N
ser_hal_transport_rx_pkt_free(m_rx_buffer) / ser _ phy _ rx _ buf _ set ( m _ rx _ buffer )
Flowline2.314
ser_hal_transport_rx_pkt_free(m_rx_buffer) / -
Straight Edge.28
N
Straight Edge.29
N
ser_hal_transport_rx_pkt_free(m_rx_buffer) / -
Flowline2.317
SER_PHY_EVT_RX_PKT_DROPPED / transport_events_handler( SER_HA...
Straight Edge.28
N
Straight Edge.29
N
SER_PHY_EVT_RX_PKT_DROPPED / transport _ events _ handler ( SER _ HAL _ TRANSP _ EVT _ RX _ PKT _ DROPPED )
Flowline2.320
ser_hal_transport_rx_pkt_free(m_rx_buffer) / -
Straight Edge.28
N
Straight Edge.29
N
ser_hal_transport_rx_pkt_free(m_rx_buffer) / -
Flowline2.323
SER_PHY_EVT_RX_PKT_DROPPED / transport_events_handler( SER_HA...
Straight Edge.28
N
Straight Edge.29
N
SER_PHY_EVT_RX_PKT_DROPPED / transport _ events _ handler ( SER _ HAL _ TRANSP _ EVT _ RX _ PKT _ DROPPED )
RX state machine
TX state machine