Serialization HAL Transport

nRF5 SDK v15.3.0

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



ser_hal_transport_tx_state_machine.svg
TX state machine