硬件环境:tms320c6678EVM
软件环境:CCS5.5.0
tms320跑linux操作系统时如何实现多核通讯,从论坛一些帖子知道它不支持SMP,我的理解是不能由操作系统自动分配调度多个核完成一个复杂任务。那么如何实现多核通讯呢?OMP等等可以吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
硬件环境:tms320c6678EVM
软件环境:CCS5.5.0
tms320跑linux操作系统时如何实现多核通讯,从论坛一些帖子知道它不支持SMP,我的理解是不能由操作系统自动分配调度多个核完成一个复杂任务。那么如何实现多核通讯呢?OMP等等可以吗?
您好:
首先,tms320c6678跑的是ucLinux而不是普通的Linux,ucLinux现在暂时没有TI官方正式发布的版本,都是由开源社区上的贡献者进行开发和维护。
ucLinux是不支持SMP的,既无法支持在不指定核号的情况下动态自发分配任务到多个核上并行处理。目前TI在DSP上的支持OpenMP的功能都是基于BIOS的而非ucLinux,所以OpenMP无法在ucLinux上使用。
如果需要多核通信的话,可以使用DSP上的硬件IPC模块(具体可以参见C6678的数据手册)来触发跨核的中断,另外可以使用Navigator的硬件Queue机制来分发/查询Queue内的Descriptor来实现多个核之间的通信。