ppu与spu之间的邮箱通信

来源:互联网 发布:淘宝林俊杰国际歌友会 编辑:程序博客网 时间:2024/05/01 00:55

ppu端程序:

 

解释:

int spe_in_mbox_status(spe_context_ptr_t spe):如果入站邮箱已满,返回值为0。返回值为可以写入的信息个数。入站邮箱是大小为4的先进先出队列。

int spe_in_mbox_write(spe_context_ptr_t spe, unsigned int *mbox_data, int count, unsigned int behavior):向spe指定的SPE入站邮箱写入最多count个信息,mbox_data指向数据源,由behavior指定该函数是否是阻塞的。

behavior有3种取值:SPE_MBOX_ALL_BLOCKING(所有count条邮箱消息被写,然后调用阻塞), SPE_MBOX_ANY_BLOCKING(至少一条邮箱消息被写,然后调用阻塞), SPE_MBOX_ANY_NONBLOCKING(写入count条数据没有阻塞)。

int spe_out_mbox_status(spe_context_ptr_t spe):返回值为邮箱中未读出的信息个数。

int spe_out_mbox_read(spe_context_ptr_t spe, unsigned int *mbox_data, int count):读出至多count条可用信息,返回值是读出的信息个数。

 

 

spu端程序:

 

解释:

spu_atat_in_mbox():返回邮箱中未被读出的信息的个数。

spu_read_in_mbox():读出下一个数据信息。

spu_stat_out_mbox():返回邮箱中可接收的信息数目。

spu_write_out_mbox(unsigned int data):将数据发送到出站邮箱。

 

 

总结:ppu端的邮箱函数是非阻塞的,spu端的邮箱函数是阻塞的。