初学6678,菜鸟都算不上,希望各位前辈耐心帮助一下
1:在main里面core0创建了一个heapbufmp,这个可以理解,然后其他的核open这个heap也理解,但是为什么其他核打开以后,注册消息编号的时候用的
MessageQ_registerHeap((IHeap_Handle)heapHandle, HEAPID);跟核0使用一样的语句,HEAPID不是一个常数吗?不理解这个语句具体是干什么的,看用户手册也没看懂,手册上说是不是HEAPID根据 heapBufParams.numBlocks变化???(原谅我这个既是菜鸟,也是英语不及格的人吧)
2:每个核创建message的时候,为什么用的是localname,而其他核打开的时候用的是MessageQ_open(core1QueueName, &messageQParams->remoteQueueIdCore[1]),里面用的是core1QueueName
Andy Yin1:
1 MessageQ_registerHeap是在创建完heap之后调用的,为创建好的heap注册一个heapID;
2 每个核的local name应该是不一样的,是会根据coreID区分的,MessageQ_open中填写的第一个入参是messageQ的名字,在创建的时候都会有一个messageQ name,你这里要具体看看core1QueueName的赋值,而不是根据其变量名来判定。
user4712072:
回复 Andy Yin1:
首先,谢谢您的回答
对于第一个问题,还是不大懂,因为core0创建了这个heap,也注册了一个heapID;只是不明白,为什么其他核打开这个heap的时候,为什么要重新注册这个heap一个heapID,会不会重复?