我用的是C6670的EVM板。在4个core分别运行不同的.out文件,在CCS中通过仿真器依次运行core0到core3的程序,功能都是正常的。
经过很长时间的摸索,终于可以通过IBL启动SPI flash中的程序,4个core都能正常运行(通过在每个core的main函数中用uart输出信息判断)。
我的问题来了,虽然核都启动了,但是整个功能不正常!!!!
采用uart逐步输出信息调试,发现只要启动了core1或core2,core0不能正常发送以太网包,就算core1启动后进入main函数就是一个死循环,core0还是不正常。
我在想以下几种可能性:
1.自启动和仿真器运行的差别是core1和core2是core0通过IPC运行的,难道core1或core2需要清中断?
2.几个core之间通过QMSS队列传递消息,在共享内存中相同的变量,是不是其余core在启动后“没有释放”共享资源,导致core0工作不正常。(这条有点悬,确实没办法,有点胡思乱想)
3.还有个问题是,在共享内存中定了一个全局变量,core0将该变量赋值为1,正常情况下其余core后启动,判决到该全局变量为1后继续运行。但是如果是先运行其余core,后运行core0,因为是后赋值,其余core就一直判决不到1,用仿真器跟也是这样的,不知道为什么?
问题太多,不知哪位大虾帮帮忙,不甚感激呀,小弟已经焦头烂额了!