大家好,我在自己设计的板卡上调试C6657 SPI BOOT加载时遇到core0程序正常执行,core1程序执行异常的情况,具体情况如下:
1、BOOT程序、core0、core1应用程序存储在SPI-Flash中,在core0上运行BOOT程序,将core0、core1应用程序加载到DDR执行,实际发现core0程序能够加载成功、跳转至_c_int00运行正常,core1程序被加载成功、设置magic address、IPCGR寄存器0x0x02620244设置为1,但实际发现core1的程序main未执行。
2、通过仿真器单独加载core1应用程序main执行正常,可以排除core1应用程序本身异常导致加载失败的情况。
3、通过仿真器调试BOOT程序发现core1程序已正确加载到DDR中、且core1 boot magic address(0x118FFFFC)已写入_c_int00地址,同时在0x02620244寄存器写入1,通知core1执行,boot加载逻辑应该没问题。
4、仿真器连接core1程序,发现pc指针指向0x20B00650,处于bootrom idle阶段,表现像是没有响应IPC中断,未跳转至_c_int00执行。如果此时人为将pc指针指向_c_int00,单步执行后能进入main执行。
从以上分析,大致可以判定,boot程序(已在其他板卡c6657上试用加载从核成功)、core1应用程序本身应该没有问题。到底什么原因导致从核加载后继续在bootrom阶段,还请帮忙分析下,谢谢。