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: 成功。
    • 其它: 错误码。

results matching ""

    No results matching ""