6678评估板 ccs5.4
我在mcsdk开发包里边缘检测例程的基础上修改程序,用IPC开发包实现用从0核向1核传图像序列,1核接收到数据后用传回0核, 发送和接收用函数messgeQ-put messageq_get。
文档里说messageQ_get是基于阻塞的函数,就是如果在所设置的时间内没有消息准备好,那么会一直处于阻塞状态。这样的话,0核会等待1核返回来消息后才继续执行,如果没有消息返回则阻塞。
实际情况是0核读取图片比1核速度快,0核的messageQ_get函数并没有阻塞,前两条接收到的消息确实是1核发来的,但之后1核处理慢,在发送第三条消息前,0核一直接收消息,当0核接收到第十条消息后,1核才发送第三条消息,不知道0核后来接收到的消息是哪来的?
我猜想是不是0核接收到了0核发送的消息?
或者有没有其他的通讯方式来实现1核收到消息后,向核0发送一个确认收到消息。
Andy Yin1:
messageQ_get确实是要等到有消息才会返回有效消息的,否则怎么可能获取消息,建议check一下后面获取的消息内容来确认消息来源。