天天看点

DSP:TMS320C6657 之 核间通信(2)

本文主要是基于IPC中断的方式进行核间通信,以下是最近的疑惑以及解答。

1.多核多镜像的核间通信例程过程:core1在task中产生一个中断信号,core1确认该中断信号进入中断服务函数IPCIsr,执行完后再向core0发出中断信号,core0确认该中断后进入自己的中断服务函数执行;功能主要是对一个共享内存定义变量Flag的修改。

2.重要的部分是产生中断信号和确认中断信号,这个地方纠结了很久最后才发现这个地方只是互相发出确认了一次,因此代码执行过之后进入idle。具体的函数即:

rc = IPCIntAcknowledge(Core1_Notify_Core0);//core1-core0通信命令

IPCIntGenerate(CPU_Core1, Core0_Notify_Core1);//触发 IPC 中断(通知核心 1)

函数的参数视具体情况改动。

3.实现多次中断core之间的通信需要多次调用上述两个函数,按照这个方法实验是可行的,具体用在项目中有什么问题还有待测试,后期有问题再补充。

4.关于共享内存中变量的定义主要是相应修改.cmd文件。网上有其他的博文写的很好可以自行搜索。

5.Ps:终于可以小放松了,虽然这不是大问题可是进了个牛角尖也挺久了~~