|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2019-10-8 13:08 编辑
' ]5 Y/ C. E4 _
; O" x6 x. Y+ n# k k1 h* l% z* fMessageQ模块:主核(核0)在将图像文件输入共享内存后,需要将输入图像缓存和输出图像缓存的地址打包成消息,传递给从核。总之,MessageQ是用来传递少量信息的,一般是地址,标志位之类的参数,不是传递大规模数组用的。对于大规模的数组,可以利用messageQ传递其首地址。
/ v- w, r# F: A/ a) O3 S; I; ~9 {" ?8 B
MessageQ模块的主要特点:: v% i, l- D- ?2 N
1. 实现了处理期间变长消息的传递,所需要传递的消息一般超过32bit;$ Z# _' j5 @/ m* V/ V
2. 其消息的传递都是通过操作消息队列来实现的;
: ~0 q& T2 _1 F `6 T6 [" G! j% M4 C3. 每个消息队列可以有多个写者,但只能有一个读者,而每个任务(task)可以对多个消息队列进行读写;
& s" D5 ?: G; F4. 一个宿主在准备接收消息时,必须先创建消息队列,而在发送消息前,需要打开预定的接收消息队列;7 y% n4 y; ^2 J
$ W& I7 d8 e$ Q Y; Y. F9 e' x( |0 V
很关键的一点就是 谁接收,谁创建( messageQ_create() )+ @6 ^; j$ O) A/ r$ L& ~
谁发送,谁打开( messageQ_open() )
9 w& R/ `+ k2 l* z1 F# c* m D- [4 h/ P+ w; S# q3 v$ r
MessageQ的使用过程:
* x; s6 g6 J0 Z* p
' ~4 U; m# G4 C0 s8 K7 b8 C, x+ K
- d$ B0 b: |, T' y* I( q$ ~ |
|