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

TMS320C6678: 多核启动问题

Part Number:TMS320C6678

core0通过写boot_magic_address地址值,以及发送IPC中断启动core1-7,是正常的,但是多核间通信也是发送IPC中断,所有核启动运行后,当core0向其他核发IPC中断用于通信时,就会再次重启其他核,不会进入其他核的中断服务程序,为什么啊?

请大神帮忙解决,谢谢!!!

Shine:

请用仿真器跟踪一下其他核是否启动运行了?再次接收IPC中断后,程序运行到哪里了?

,

liang ge2:

仿真是好的,只是烧写到SPI FLASH后,上电后其他核可以正常被核0启动,就是核0再次发送IPC中断其他核又从头开始跑,不进中断。

,

liang ge2:

核间通信和上电后核0启动其他核运行,都是用IPC中断,请问如何避免所有核启动后,核0发送的IPC中断用于核间通信,而不是启动其他核运行?

,

Shine:

我是指在boot模式下,用仿真器跟踪一下代码的执行过程,可以先只使能core0, core1。

,

liang ge2:

中间去处理公司其他事情,这两天有时间解决多核启动,发现不进中断的原因是CMD文件中其他核中断向量表定义的空间与0核相同,忘记要用各自独立的空间,对此进行了修改,此外0核启动其他7个核后,中间要加延时再发IPC中断,其他核才会响应。

请问Shine,正确的流程是不是必须要加这个延时,要求是多长时间?

,

Shine:

请问是否有用仿真器跟踪过0核启动其他核,发送IPC中断后,其他核是否已经开始运行代码?是IPC中断位没有置1?还是收到中断后没有响应?

,

liang ge2:

其他核的测试程序包括两部分,一是main内while循环给共享内存固定地址写循环+1数。二是IPC中断里给另外一个固定地址写+1数。0核仅初始化时触发1核IPC中断一次,1核到7核依次触发,且1-7的IPC中断循环。程序是烧到FLASH内的,仿真连接0核后查看共享内存,发现1-7核while循环写地址数在不停变化,但IPC中断内写地址的数据为原始值,说明IPC中断没有触发。将0核启动其他核程序后面加了延时,再触发1核的IPC中断,重新烧到FLASH内,连接0核,查看共享内存1-7核,每个核写的两个地址上的数都在变化。正常了。所以问下,加延时的必要性?

,

Shine:

这段延时很长吗?可以看一下其他核是不是在做其他初始化,还没打开中断使能?

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6678: 多核启动问题
分享到: 更多 (0)