Ipc#

group bsp_ipc

Control the IPC peripheral (nRF53 only)

Author

Alexandre Abadie alexandre.abadie@inria.fr

Copyright

Inria, 2023

Defines

IPC_IRQ_PRIORITY#

Enums

enum ipc_req_t#

Values:

enumerator DB_IPC_REQ_NONE#

Sorry, but nothing.

enumerator DB_IPC_RADIO_INIT_REQ#

Request for radio initialization.

enumerator DB_IPC_RADIO_FREQ_REQ#

Request for radio set frequency.

enumerator DB_IPC_RADIO_CHAN_REQ#

Request for radio set channel.

enumerator DB_IPC_RADIO_ADDR_REQ#

Request for radio set network address.

enumerator DB_IPC_RADIO_RX_REQ#

Request for radio rx.

enumerator DB_IPC_RADIO_DIS_REQ#

Request for radio disable.

enumerator DB_IPC_RADIO_TX_REQ#

Request for radio tx.

enumerator DB_IPC_RADIO_RSSI_REQ#

Request for RSSI.

enumerator DB_IPC_RNG_INIT_REQ#

Request for rng init.

enumerator DB_IPC_RNG_READ_REQ#

Request for rng read.

enumerator DB_IPC_TDMA_CLIENT_INIT_REQ#

Request for TDMA client initialization.

enumerator DB_IPC_TDMA_CLIENT_SET_TABLE_REQ#

Request for setting the TDMA client timing table.

enumerator DB_IPC_TDMA_CLIENT_GET_TABLE_REQ#

Request for reading the TDMA client timing table.

enumerator DB_IPC_TDMA_CLIENT_TX_REQ#

Request for a TDMA client TX.

enumerator DB_IPC_TDMA_CLIENT_FLUSH_REQ#

Request for flushing the TDMA client message buffer.

enumerator DB_IPC_TDMA_CLIENT_EMPTY_REQ#

Request for erasing the TDMA client message buffer.

enumerator DB_IPC_TDMA_CLIENT_STATUS_REQ#

Request for reading the TDMA client driver status.

enumerator DB_IPC_TDMA_SERVER_INIT_REQ#

Request for TDMA server initialization.

enumerator DB_IPC_TDMA_SERVER_GET_TABLE_REQ#

Request for reading the TDMA server timing table general info.

enumerator DB_IPC_TDMA_SERVER_GET_CLIENT_REQ#

Request for reading the info about a specific client.

enumerator DB_IPC_TDMA_SERVER_TX_REQ#

Request for a TDMA server TX.

enumerator DB_IPC_TDMA_SERVER_FLUSH_REQ#

Request for flushing the TDMA server message buffer.

enumerator DB_IPC_TDMA_SERVER_EMPTY_REQ#

Request for erasing the TDMA server message buffer.

enum ipc_channels_t#

Values:

enumerator DB_IPC_CHAN_REQ#

Channel used for request events.

enumerator DB_IPC_CHAN_RADIO_RX#

Channel used for radio RX events.

Functions

static inline void mutex_lock(void)#

Lock the mutex, blocks until the mutex is locked.

static inline void mutex_unlock(void)#

Unlock the mutex, has no effect if the mutex is already unlocked.

void db_ipc_network_call(ipc_req_t req)#
void release_network_core(void)#
struct ipc_radio_pdu_t#

Public Members

uint8_t length#

Length of the pdu in bytes.

uint8_t buffer[UINT8_MAX]#

Buffer containing the pdu data.

struct ipc_radio_data_t#

Public Members

db_radio_mode_t mode#

db_radio_init function parameters

uint8_t frequency#

db_set_frequency function parameters

uint8_t channel#

db_set_channel function parameters

uint32_t addr#

db_set_network_address function parameters

ipc_radio_pdu_t tx_pdu#

PDU to send.

ipc_radio_pdu_t rx_pdu#

Received pdu.

int8_t rssi#

RSSI value.

struct ipc_rng_data_t#

Public Members

uint8_t value#

Byte containing the random value read.

struct ipc_tdma_client_data_t#

Public Members

db_radio_mode_t mode#

db_radio_init function parameters

application_type_t default_radio_app#

db_radio_init function parameters

uint8_t frequency#

db_set_frequency function parameters

tdma_client_table_t table_set#

db_tdma_client_set_table function parameter

tdma_client_table_t table_get#

db_tdma_client_get_table function parameter

ipc_radio_pdu_t tx_pdu#

PDU to send.

ipc_radio_pdu_t rx_pdu#

Received pdu.

db_tdma_registration_state_t registration_state#

db_tdma_client_get_status return value

struct ipc_tdma_server_data_t#

Public Members

db_radio_mode_t mode#

db_radio_init function parameters

application_type_t default_radio_app#

db_radio_init function parameters

uint8_t frequency#

db_set_frequency function parameters

uint32_t frame_duration_us#

db_tdma_server_get_table_info function parameter

uint16_t num_clients#

db_tdma_server_get_table_info function parameter

uint16_t table_index#

db_tdma_server_get_table_info function parameter

uint8_t client_id#

db_tdma_server_get_client_info function parameter

tdma_table_entry_t client_entry#

db_tdma_server_get_client_info function parameter

ipc_radio_pdu_t tx_pdu#

PDU to send.

ipc_radio_pdu_t rx_pdu#

Received pdu.

struct ipc_shared_data_t#

Public Members

bool net_ready#

Network core is ready.

bool net_ack#

Network core acked the latest request.

ipc_req_t req#

IPC network request.

ipc_radio_data_t radio#

Radio shared data.

ipc_rng_data_t rng#

Rng share data.

ipc_tdma_client_data_t tdma_client#

TDMA client drv shared data.

ipc_tdma_server_data_t tdma_server#

TDMA server drv shared data.