TI中文支持网
TI专业的中文技术问题搜集分享网站

MessageQ需要维护SharedRegion的一致性吗

环境:DSP6678、CCS5.0

问题:在MSMC中分配了一块区域做SharedRegion,每次从SharedRegion分配内存通过messageQ发送,发送之前和接收的时候需要维护cache的一致性吗??在官方的例子shmIpcBenchmark中并没有去维护cache的一致性。

代码:

/////////////////////////////////////cfg///////////////////////////////////////////

var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');
SharedRegion.translate = false;
SharedRegion.setEntryMeta(0,
{ base: Program.global.shmBase, len: Program.global.shmSize,
ownerProcId: 0,
isValid: true,
cacheEnable: cacheEnabled,
cacheLineSize: cacheLineSize, /* Aligns allocated messages to a cache line */
name: "internal_shared_mem",
});

////////////////////////////////////发送/////////////////////////////////////////////

msg = MessageQ_alloc(HEAP_ID, MESSAGE_SIZE_IN_BYTES);
if (msg == NULL) {
System_abort("MessageQ_alloc failed\n");
}

/* !!!!!!!!!是否需要维护cache的一致性问题!!!!!!!!!!!!??????? */

status = MessageQ_put(nextQueueId, msg);
if (status < 0) {
System_abort("MessageQ_put failed\n");
}

/////////////////////////////接收//////////////////////////////////////////

/* !!!!!!!!!是否需要维护cache的一致性问题!!!!!!!!!!!!??????? */

/* Get a message */
status = MessageQ_get(messageQ, &msg, MessageQ_FOREVER);
if (status < 0) {
System_abort("MessageQ_get failed\n");
}

Nancy Wang:

如果MSMC中的这段数据只被某一个cpu核心操作就不存在缓存一致性的问题。如果一段时间有多个master来操作这段数据就需要维护一致性。

kun kun:

回复 Nancy Wang:

谢谢您的回复!我是多核通信,那就需要维护cache一致性了。那为什么官方的例子(也是多核)中没有去维护。。。shmIpcBenchmark

Nancy Wang:

回复 kun kun:

请仔细阅读一下这个帖子。
e2e.ti.com/…/297356
另外您用的是比较老的MCSDK,建议使用最新的SDK版本。

Nancy Wang:

回复 kun kun:

在您测试的过程中是否遇到了数据读取不一致的情况?
You don't need to make any changes to messageq example to be able to send data from one core to another.This example should do that by default because its purpose is to show you how to send data between cores.Yes, MessageQ is most appropriate method for sharing data between cores.If using MessageQ, there's no need to do Cache_wb or Cache_wbInv since it does it for you.

kun kun:

回复 Nancy Wang:

谢谢您的回复。我现在使用的IPC版本是1.24。目前不维护cache的情况下,暂时未发现问题。但是按照上面链接的说法,是不是使用1.25这个版本比较靠谱?

Nancy Wang:

回复 kun kun:

最好是用新的版本,因为如果发现bug会在新版本中进行修复。

赞(0)
未经允许不得转载:TI中文支持网 » MessageQ需要维护SharedRegion的一致性吗
分享到: 更多 (0)