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

6678 核间同步以及EDMA3 channel的问题

我用6678处理数据,中间需要同步,从核发message给主核,当主核收到全部从核的message,再各个发回。但是这太慢了,

if (MessageQ_put(reply_queue_id, (MessageQ_Msg)p_msg) < 0) {
printf("%s: MessageQ_put had a failure error\n", receive_queue_name);
goto close_n_exit;
}

一个以上语句就需要大约50ms,伤不起啊。请问有没有其他的同步方式能快一些啊?

另外,edma3 只能申请三个channel ,edma3init函数里面会对此判断,

if ((edma3Id >= numEdma3Instances) || (errorCode == NULL))
return hEdma;

我将numEdma3Instances改为9也不行,是不是需要重建函数库啊?求专家详解!小弟在此谢过了!

Thomas Yang1:

Keystone 多核同步的方式有很多,比如:

1)采用share memory 方式

2)采用Navigator 的IPC功能

3)采用核间中断的方式

Keystone中EDMA3支持3个CC,CSL库函数中的设置是和硬件的资源相关的,你需要按照芯片对应的CSL库接口去调用

Ryan KU:

回复 Thomas Yang1:

Thomas Yang您好:

 关于多核同步我有两个问题想向您请教:

1. share memory是各个内核共享的资源,那具体可以通过什么方式实现多核的同步呢?

2.如果通过IPC核间通信实现内核同步是否必须使用SYS/BIOS的方式呢?

谢谢!

 

yang cao1:

回复 Thomas Yang1:

谢谢Thomas Yang1,请问share memory 方式是如何实现同步的?mesage是ipc中得一项,只是太慢了。您说的这三种方式那种最快呢?

haotian chang:

回复 Thomas Yang1:

share memory 的方式有参考例程吗

赞(0)
未经允许不得转载:TI中文支持网 » 6678 核间同步以及EDMA3 channel的问题
分享到: 更多 (0)