MAILBOX
简要说明
Malibox模块用于双核通信,当系统中存在两个cpu时,可以使用mailbox进行cpu间通信。
接口描述
csi_mailbox_initialize
mailbox_handle_t csi_mailbox_initialize(mailbox_event_cb_t cb_event);
功能描述:
- 始化对mailbox实例,返回mailbox实例的句柄。
参数:
cb_event
: mailbox实例的事件回调函数,应用可根据回调函数做相应的行为。回调函数原型定义见mailbox_event_cb_t。回调函数类型mailbox_event_cb_t定义如下:
typedef void (*mailbox_event_cb_t)(mailbox_handle_t handle, int32_t mailbox_id, uint32_t received_len, mailbox_event_e event);
其中mailbox_id为mailbox编号,received_len为传传输数据长度,event为触发事件。
mailbox回调事件枚举类型见mailbox_event_e定义。
返回值:
- NULL: 初始化失败。
- 其它: 实例句柄。
mailbox_event_e:
名称 | 定义 | 备注 |
---|---|---|
MAILBOX_EVENT_SEND_COMPLETE | 发送完毕 | |
MAILBOX_EVENT_RECEIVED | 接收到数据 |
csi_mailbox_uninitialize
int32_t csi_mailbox_uninitialize(mailbox_handle_t handle);
- 功能描述:
- 反始化对mailbox实例。
- 参数:
handle
: mailbox实例的句柄。
- 返回值:
- 0: 成功。
- 其它: 错误码。
csi_mailbox_send
int32_t csi_mailbox_send(mailbox_handle_t handle, int32_t mailbox_id,
const void *data, uint32_t num);
- 功能描述:
- mailbox发送数据。
- 参数:
handle
: mailbox实例的句柄。mailbox_id
: 目标端mailbox_id。data
: 待发送数据。num
: 数据长度。
- 返回值:
- 0: 成功。
- 其它: 错误码。
csi_mailbox_receive
int32_t csi_mailbox_receive(mailbox_handle_t handle, int32_t mailbox_id,
void *data, uint32_t num);
- 功能描述:
- mailbox接收数据。
- 参数:
handle
: mailbox实例的句柄。mailbox_id
: 目标端mailbox_id。data
: 接收数据缓存区。num
: 数据长度。
- 返回值:
- 0: 成功。
- 其它: 错误码。