用的是闻亭 TDS560 仿真器,我将c6678八个核的代码写到一个工程里面 ,将代码段分配到共享存储区L2里 ,其他一些变量或者段分配到本地L2空间,仿真器同时连接8个核 ,我想通过核0对其他核发IPC触发其他核开始工作,请问怎么操作?是不是现将其他核复位,然后运行其他核,此时从核处于等待主核IPC状态,然后运行主核 开始触发从核运行? 我这样操作的时候 有时主核能够正常启动其他核,有时又不行, 从核还是在等待状态 ,看不到任何程序 ,请问怎么回事 ?
King Wang1:
上电后,DSP的主核执行加载流程,从核会进入到一个idle状态。
主核执行代码后,通过向各个从核发送IPC中断来唤起从核。从核启动后,会自动从MAGIC_ADDRESS中读一个地址(32bit),然后将PC指针跳转到这个地址,就开始执行代码了。
更多详细过程你可以参考STK代码。
wang yu1:
回复 King Wang1:
能不能在连着仿真器的状态下 模拟这个过程 ,比如从核先复位 然后一直运行 ,这个时候从核是不是就处于等待唤醒状态,然后主核通过IPC唤醒 ,我在程序中打了断点 就是按这个方法试验,结果有时能顺利启动从核,有时却不行