DSP

dsp入门

2019-07-13 11:51发布

dsp多核通信之ipc

多核之间通信ipc: ipc通信是一种基于messageQuene的一种消息机制。 通信一般采用与三种模式,1.共享内存 2.硬件中断 3.任务中断 1.共享内存:可以有效的节省系统资源,多核之间访问同一内存,若数据只读,可以采用共享内存,若数据可写,要设计每个核之间对内存的操作顺序,防止出现数据被胡乱的篡改。 2.硬件中断:硬件中断有很好的实时性,但是在核响应高优先级中断的时,发生低优先级中断时,会打断高优先级的中断,若在高优先级屏蔽低优先级的中断,在引起中断时不能及时响应,只能响应最后一个中断。 3.任务中断:这可以及时的响应中断,又能在执行中断时,记录其他的一些中断请求,有一种消息队列的意思。 而ipc通信采用的是第三种模式。 在进行ipc多核通信时,我们要先设计核之间的工作顺序,利用消息变量来控制当前核的当前状态。 多核通信是往往不是一次就能成功的,通常在进行核连接时 while (ipc_attach(#coreid) < 0){ task_slppe(1); }这个可以等待核连接成功。进行核连接是需要注意的事项:1.核的连接需要从大到小的连接。2.多核连接时,只有核ID晓得连接了核ID大的,核ID大的才能连接核ID小的。可以参考ccs自带例程中的 ipcand IO exmaples 下得c6678 noity例程