|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2019-10-8 13:08 编辑 % |! r6 X0 A9 K g/ I* I" G) W$ |
' G* c, |( m# v- c# ~ sMessageQ模块:主核(核0)在将图像文件输入共享内存后,需要将输入图像缓存和输出图像缓存的地址打包成消息,传递给从核。总之,MessageQ是用来传递少量信息的,一般是地址,标志位之类的参数,不是传递大规模数组用的。对于大规模的数组,可以利用messageQ传递其首地址。# I% g* H" Q! S: b3 v% E
# o# O. V: e: ~4 T: ?, KMessageQ模块的主要特点:
4 F% c% P1 F! H1. 实现了处理期间变长消息的传递,所需要传递的消息一般超过32bit;
' T! u/ L( B% A9 `2. 其消息的传递都是通过操作消息队列来实现的;
# T- A5 y7 L/ y) }' b4 b( A" j3. 每个消息队列可以有多个写者,但只能有一个读者,而每个任务(task)可以对多个消息队列进行读写;
/ ?4 C* I+ P" I% i1 f4. 一个宿主在准备接收消息时,必须先创建消息队列,而在发送消息前,需要打开预定的接收消息队列;
& {& h+ U0 Q. c: P( T8 t$ @' X" c5 E( q
很关键的一点就是 谁接收,谁创建( messageQ_create() )
0 J2 m# Y; i" F m3 M' O' p; {谁发送,谁打开( messageQ_open() )7 Y- w w9 O, U
9 t+ H; k1 Y7 m! M$ |MessageQ的使用过程:
) F+ `: i0 ~9 p: K
; S2 s) X, P N, d m% ^- x& ~
; n$ o) F% L, Y& W2 K, l5 T5 \6 j9 v9 n
|
|