![]() |
RA Flexible Software Package Documentation
Release v6.2.0
|
|
Interface for inter-processor communications (IPC).
The IPC interface provides common APIs for IPC HAL drivers. The IPC interface supports the following features:
Data Structures | |
| struct | ipc_callback_args_t |
| struct | ipc_cfg_t |
| struct | ipc_api_t |
| struct | ipc_instance_t |
Typedefs | |
| typedef void | ipc_ctrl_t |
Enumerations | |
| enum | ipc_event_t |
| enum | ipc_generate_event_t |
| struct ipc_callback_args_t |
IPC Callback parameter definition
| Data Fields | ||
|---|---|---|
| uint32_t | channel | IPC channel. |
| uint32_t | message | Received message data. |
| ipc_event_t | event | Event code. |
| void * | p_context | Context provided to user during callback. |
| struct ipc_cfg_t |
IPC Configuration
Data Fields | |
| uint32_t | channel |
| IPC channel. | |
| IRQn_Type | irq |
| uint8_t | ipl |
| void(* | p_callback )(ipc_callback_args_t *p_args) |
| void * | p_context |
| User defined context passed into callback function. | |
| IRQn_Type ipc_cfg_t::irq |
IPC IRQ number
| uint8_t ipc_cfg_t::ipl |
IPC Interrupt priority
| void(* ipc_cfg_t::p_callback) (ipc_callback_args_t *p_args) |
Pointer to callback function
| struct ipc_api_t |
Interface definition for IPC
Data Fields | |
| fsp_err_t(* | open )(ipc_ctrl_t *const p_ctrl, ipc_cfg_t const *const p_cfg) |
| fsp_err_t(* | messageSend )(ipc_ctrl_t *const p_ctrl, uint32_t message) |
| fsp_err_t(* | eventGenerate )(ipc_ctrl_t *const p_ctrl, ipc_generate_event_t event) |
| fsp_err_t(* | callbackSet )(ipc_ctrl_t *const p_ctrl, void(*p_callback)(ipc_callback_args_t *), void *const p_context, ipc_callback_args_t *const p_callback_memory) |
| fsp_err_t(* | close )(ipc_ctrl_t *const p_ctrl) |
| fsp_err_t(* ipc_api_t::open) (ipc_ctrl_t *const p_ctrl, ipc_cfg_t const *const p_cfg) |
Open IPC instance.
| [in,out] | p_ctrl | Pointer to the IPC control block. Must be declared by user. Value set here. |
| [in] | p_cfg | Pointer to IPC configuration structure. All elements of this structure must be set by user. |
| fsp_err_t(* ipc_api_t::messageSend) (ipc_ctrl_t *const p_ctrl, uint32_t message) |
Send message through the FIFO of the configured IPC channel.
| [in] | p_ctrl | Pointer to the IPC control block. |
| [in] | message | Message to send. |
| fsp_err_t(* ipc_api_t::eventGenerate) (ipc_ctrl_t *const p_ctrl, ipc_generate_event_t event) |
Generate event through configured IPC channel interrupt.
| [in] | p_ctrl | Pointer to the IPC control block. |
| [in] | event | Event to generate interrupt for. |
| fsp_err_t(* ipc_api_t::callbackSet) (ipc_ctrl_t *const p_ctrl, void(*p_callback)(ipc_callback_args_t *), void *const p_context, ipc_callback_args_t *const p_callback_memory) |
Specify callback function and optional context pointer and working memory pointer.
| [in] | p_ctrl | Pointer to the IPC control block. |
| [in] | p_callback | Callback function |
| [in] | p_context | Pointer to send to callback function |
| [in] | p_callback_memory | Pointer to volatile memory where callback structure can be allocated. Callback arguments allocated here are only valid during the callback. |
| fsp_err_t(* ipc_api_t::close) (ipc_ctrl_t *const p_ctrl) |
Close IPC instance.
| [in] | p_ctrl | Pointer to the IPC control block. |
| struct ipc_instance_t |
This structure encompasses everything that is needed to use an instance of this interface.
| Data Fields | ||
|---|---|---|
| ipc_ctrl_t * | p_ctrl | Pointer to the control structure for this instance. |
| ipc_cfg_t const * | p_cfg | Pointer to the configuration structure for this instance. |
| ipc_api_t const * | p_api | Pointer to the API structure for this instance. |
| typedef void ipc_ctrl_t |
IPC control block. Allocate an instance specific control block to pass into the IPC API calls.
| enum ipc_event_t |
IPC Events
| enum ipc_generate_event_t |
IPC Generate Events